Commit f52b83b0 authored by David Howells's avatar David Howells Committed by Linus Torvalds

afs: Fix afs_lookup() to not clobber the version on a new dentry

Fix afs_lookup() to not clobber the version set on a new dentry by
afs_do_lookup() - especially as it's using the wrong version of the
version (we need to use the one given to us by whatever op the dir
contents correspond to rather than what's in the afs_vnode).

Fixes: 9dd0b82e ("afs: Fix missing dentry data version updating")
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 40a708bd
...@@ -952,12 +952,8 @@ static struct dentry *afs_lookup(struct inode *dir, struct dentry *dentry, ...@@ -952,12 +952,8 @@ static struct dentry *afs_lookup(struct inode *dir, struct dentry *dentry,
afs_stat_v(dvnode, n_lookup); afs_stat_v(dvnode, n_lookup);
inode = afs_do_lookup(dir, dentry, key); inode = afs_do_lookup(dir, dentry, key);
key_put(key); key_put(key);
if (inode == ERR_PTR(-ENOENT)) { if (inode == ERR_PTR(-ENOENT))
inode = afs_try_auto_mntpt(dentry, dir); inode = afs_try_auto_mntpt(dentry, dir);
} else {
dentry->d_fsdata =
(void *)(unsigned long)dvnode->status.data_version;
}
if (!IS_ERR_OR_NULL(inode)) if (!IS_ERR_OR_NULL(inode))
fid = AFS_FS_I(inode)->fid; fid = AFS_FS_I(inode)->fid;
......
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