Re: [RFC][PATCH] make reiserfs stop using 'struct file' for internal xattr operations

Andrew Morton
2007-09-27T21:53:14Z

On Thu, 27 Sep 2007 14:27:14 -0700
Dave Hansen <haveblue@us.ibm.com> wrote:

> On Thu, 2007-09-27 at 22:04 +0100, Christoph Hellwig wrote:
> > On Thu, Sep 27, 2007 at 01:53:39PM -0700, Dave Hansen wrote:
> > > -int reiserfs_commit_write(struct file *f, struct page *page,
> > > - unsigned from, unsigned to);
> > > -int reiserfs_prepare_write(struct file *f, struct page *page,
> > > - unsigned from, unsigned to);
> > > +int reiserfs_commit_write(struct page *page, unsigned from, unsigned to);
> > > +int reiserfs_prepare_write(struct page *page, unsigned from, unsigned to);
> >
> > I doubt this will work. These are also used for the ->prepare_write
> > and ->commit_write aops, and the method signature definitively wants
> > a file there, even if it's zero..
>
> Oddly enough, I don't see those functions being used in aops:
>
> const struct address_space_operations reiserfs_address_space_operations = {
> .writepage = reiserfs_writepage,
> .readpage = reiserfs_readpage,
> .readpages = reiserfs_readpages,
> .releasepage = reiserfs_releasepage,
> .invalidatepage = reiserfs_invalidatepage,
> .sync_page = block_sync_page,
> .write_begin = reiserfs_write_begin,
> .write_end = reiserfs_write_end,
> .bmap = reiserfs_aop_bmap,
> .direct_IO = reiserfs_direct_IO,
> .set_page_dirty = reiserfs_set_page_dirty,
> };
>
> Plus, reiserfs seems to compile with that patch I just sent. Sure as
> heck surprised me.
>

That'll be because reiserfs-convert-to-new-aops.patch witched reiserfs over
to ->write_begin() and ->write_end().

So your stuff becomes dependent on Nick's stuff, and Nick's stuff is still
failing on NFS, I think.