On Wed, 2007-03-14 at 21:13 -0700, Mark Fasheh wrote: > Hi Nick, > > On Wed, Mar 14, 2007 at 02:38:22PM +0100, Nick Piggin wrote: > > Introduce write_begin, write_end, and perform_write aops. > > > > These are intended to replace prepare_write and commit_write with more > > flexible alternatives that are also able to avoid the buffered write > > deadlock problems efficiently (which prepare_write is unable to do). > > > Index: linux-2.6/include/linux/fs.h > > =================================================================== > > --- linux-2.6.orig/include/linux/fs.h > > +++ linux-2.6/include/linux/fs.h > > @@ -449,6 +449,17 @@ struct address_space_operations { > > */ > > int (*prepare_write)(struct file *, struct page *, unsigned, unsigned); > > int (*commit_write)(struct file *, struct page *, unsigned, unsigned); > > + > > + int (*write_begin)(struct file *, struct address_space *mapping, > > + loff_t pos, unsigned len, int intr, > > + struct page **pagep, void **fsdata); > > + int (*write_end)(struct file *, struct address_space *mapping, > > + loff_t pos, unsigned len, unsigned copied, > > + struct page *page, void *fsdata); > > Are we going to get rid of the file and intr arguments btw? I'm not sure > intr is useful, and mapping is probably enough to get whatever we inside > ->write_begin / ->write_end. Hell no! Struct file carries information that is essential for those of us that use strong authentication. It stays. Trond - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html