Skip to content

Commit 38d222b

Browse files
committed
9p: v9fs_fid_find: also lookup by inode if not found dentry
It's possible for v9fs_fid_find "find by dentry" branch to not turn up anything despite having an entry set (because e.g. uid doesn't match), in which case the calling code will generally make an extra lookup to the server. In this case we might have had better luck looking by inode, so fall back to look up by inode if we have one and the lookup by dentry failed. Message-Id: <[email protected]> Reviewed-by: Christian Schoenebeck <[email protected]> Signed-off-by: Dominique Martinet <[email protected]>
1 parent 98f7e32 commit 38d222b

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

fs/9p/fid.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,9 @@ static struct p9_fid *v9fs_fid_find(struct dentry *dentry, kuid_t uid, int any)
131131
}
132132
}
133133
spin_unlock(&dentry->d_lock);
134-
} else {
135-
if (dentry->d_inode)
136-
ret = v9fs_fid_find_inode(dentry->d_inode, false, uid, any);
137134
}
135+
if (!ret && dentry->d_inode)
136+
ret = v9fs_fid_find_inode(dentry->d_inode, false, uid, any);
138137

139138
return ret;
140139
}

0 commit comments

Comments
 (0)