Re: [RFC PATCH 4/4] If 'wsync' pass datasync=1 to vfs_fsync().

Christoph Hellwig
2010-02-04T18:40:41Z

On Thu, Feb 04, 2010 at 01:38:00PM -0500, Trond Myklebust wrote:
> > Indeed, both write_inode_now and vfs_fsync will also cause data to
> > be written. But my understanding of nfsd is that we manage the data
> > writeout separately anyway and we care about the metadata here, which
> > the placement of these calls would suggest:
> >
> > - nfsd_setattr for attribute updates
> > - nfsd_create for creating a new file (of any type)
> > - nfsd_link for adding a new link
>
> Yes. Most operations in NFS are required to be synchronous (the only
> exception being "unstable" write requests), and so those
> fsync/write_inode_now calls are there in order to ensure that the
> metadata and/or directory contents that were changed hits the disk
> before the RPC call completes.

Yeah. But currently both the fsync and write_inode_now calls will force
those unstable writes to disk. I'm not sure if that is an intentional
or unintentional side-effect of those metadata operations.