path: root/fs/nfsd/nfs3xdr.c
diff options
authorJ. Bruce Fields <bfields@citi.umich.edu>2009-04-16 17:33:25 -0400
committerJ. Bruce Fields <bfields@citi.umich.edu>2009-04-29 11:35:49 -0400
commitc654b8a9cba6002aad1c01919e4928a79a4a6dcf (patch)
treefee411bb42ec86e72a9e843529551e559c1f2749 /fs/nfsd/nfs3xdr.c
parent3352d2c2d0540955a7bbb3421a28330af7f9d79c (diff)
nfsd: support ext4 i_version
ext4 supports a real NFSv4 change attribute, which is bumped whenever the ctime would be updated, including times when two updates arrive within a jiffy of each other. (Note that although ext4 has space for nanosecond-precision ctime, the real resolution is lower: it actually uses jiffies as the time-source.) This ensures clients will invalidate their caches when they need to. There is some fear that keeping the i_version up-to-date could have performance drawbacks, so for now it's turned on only by a mount option. We hope to do something better eventually. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Cc: Theodore Tso <tytso@mit.edu>
Diffstat (limited to 'fs/nfsd/nfs3xdr.c')
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfsd/nfs3xdr.c b/fs/nfsd/nfs3xdr.c
index 17d0dd99720..01d4ec1c88e 100644
--- a/fs/nfsd/nfs3xdr.c
+++ b/fs/nfsd/nfs3xdr.c
@@ -272,6 +272,7 @@ void fill_post_wcc(struct svc_fh *fhp)
err = vfs_getattr(fhp->fh_export->ex_path.mnt, fhp->fh_dentry,
+ fhp->fh_post_change = fhp->fh_dentry->d_inode->i_version;
if (err)
fhp->fh_post_saved = 0;