Hans Reiser <[EMAIL PROTECTED]> writes:

> I feel we should encourage Linus to allow the following:
> 
> * unions in struct buffer_head and struct page containing filesystem specific
> fields comparable to the union in struct inode.

No.  

In struct buffer_head I don't have problems.

In struct page (you don't want to pay the overhead for every page of memory)...
There is the buffer_head *bh pointer that could be made more generic.

> 
> * a filesystem operation which flushes to disk a buffer or page, and leaves it
> to the filesystem whether to flush a whole commit along with it, or a whole
> bunch of semantically adjacent buffers, or to repack the buffers before writing
> them, or to write a whole bunch of semantically nearby buffers, or to fill the
> rest of the RAID stripe, or assign a block number to the page, or mark the page
> copy_on_write, or whatever else it wants.

Or allocate bounce buffers, for high memory pages. . .

Though I don't think copy_on_write and (whatever else it wants)
are necessarily hot ideas.  There need to be some constraints.

> Do the rest of you agree?

I agree that it is a good idea. Exactly how it should, and if it
should be implemented for 2.3 is a second question.

There is also the related issue of the page lock not currently working
for NFS (it needs some I/O locking).

Since I've been pushing for this for a while.  I'll see if there
is anything that could be considered a ``bug fix'' doable yet in 2.3

The recent patch to improve fdatasync performance is also somewhat
related.

Eric

Reply via email to