From: Trond Myklebust Date: Fri, 16 Dec 2016 23:04:47 +0000 (-0500) Subject: NFS: Only look at the change attribute cache state in nfs_weak_revalidate() X-Git-Tag: v4.14-rc1~1804^2~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9cdd1d3f1a8cea9cfe7953f45fae9ff51c37afa3;p=platform%2Fkernel%2Flinux-rpi.git NFS: Only look at the change attribute cache state in nfs_weak_revalidate() Just like in nfs_check_verifier(), we want to use nfs_mapping_need_revalidate_inode() to check our knowledge of the change attribute is up to date. Signed-off-by: Trond Myklebust --- diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index cb22a9f9ae7e..8f706f3e5c05 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -1273,8 +1273,8 @@ out_error: */ static int nfs_weak_revalidate(struct dentry *dentry, unsigned int flags) { - int error; struct inode *inode = d_inode(dentry); + int error = 0; /* * I believe we can only get a negative dentry here in the case of a @@ -1293,7 +1293,8 @@ static int nfs_weak_revalidate(struct dentry *dentry, unsigned int flags) return 0; } - error = nfs_revalidate_inode(NFS_SERVER(inode), inode); + if (nfs_mapping_need_revalidate_inode(inode)) + error = __nfs_revalidate_inode(NFS_SERVER(inode), inode); dfprintk(LOOKUPCACHE, "NFS: %s: inode %lu is %s\n", __func__, inode->i_ino, error ? "invalid" : "valid"); return !error;