Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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

parent 2d148c7e
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -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)