Commit d8fdb47f authored by Trond Myklebust's avatar Trond Myklebust Committed by Anna Schumaker

NFS: Don't let readdirplus revalidate an inode that was marked as stale

Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
parent 2d148c7e
...@@ -424,12 +424,17 @@ static int xdr_decode(nfs_readdir_descriptor_t *desc, ...@@ -424,12 +424,17 @@ static int xdr_decode(nfs_readdir_descriptor_t *desc,
static static
int nfs_same_file(struct dentry *dentry, struct nfs_entry *entry) int nfs_same_file(struct dentry *dentry, struct nfs_entry *entry)
{ {
struct inode *inode;
struct nfs_inode *nfsi; struct nfs_inode *nfsi;
if (d_really_is_negative(dentry)) if (d_really_is_negative(dentry))
return 0; return 0;
nfsi = NFS_I(d_inode(dentry)); inode = d_inode(dentry);
if (is_bad_inode(inode) || NFS_STALE(inode))
return 0;
nfsi = NFS_I(inode);
if (entry->fattr->fileid == nfsi->fileid) if (entry->fattr->fileid == nfsi->fileid)
return 1; return 1;
if (nfs_compare_fh(entry->fh, &nfsi->fh) == 0) if (nfs_compare_fh(entry->fh, &nfsi->fh) == 0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment