nfsd: nfsd_setattr needs to call commit_metadata
authorChristoph Hellwig <hch@lst.de>
Tue, 1 Jun 2010 19:59:18 +0000 (21:59 +0200)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Tue, 1 Jun 2010 23:17:50 +0000 (19:17 -0400)
The conversion of write_inode_now calls to commit_metadata in commit
f501912a35c02eadc55ca9396ece55fe36f785d0 missed out the call in nfsd_setattr.

But without this conversion we can't guarantee that a SETATTR request
has actually been commited to disk with XFS, which causes a regression
from 2.6.32 (only for NFSv2, but anyway).

Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: stable@kernel.org
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
fs/nfsd/vfs.c

index 6dd5f1970e01dedc3da245d8d26d87236dfadaf4..3440dd8a4fb3bd3d4333fbc3395ab4b2bf4325ab 100644 (file)
@@ -443,8 +443,7 @@ nfsd_setattr(struct svc_rqst *rqstp, struct svc_fh *fhp, struct iattr *iap,
        if (size_change)
                put_write_access(inode);
        if (!err)
-               if (EX_ISSYNC(fhp->fh_export))
-                       write_inode_now(inode, 1);
+               commit_metadata(fhp);
 out:
        return err;