Messages in this thread Patch in this message | | | From | Greg Kroah-Hartman <> | Subject | [PATCH 5.2 006/143] afs: Fix off-by-one in afs_rename() expected data version calculation | Date | Wed, 4 Sep 2019 19:52:29 +0200 |
| |
[ Upstream commit 37c0bbb3326674940e657118306ac52364314523 ]
When afs_rename() calculates the expected data version of the target directory in a cross-directory rename, it doesn't increment it as it should, so it always thinks that the target inode is unexpectedly modified on the server.
Fixes: a58823ac4589 ("afs: Fix application of status and callback to be under same lock") Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org> --- fs/afs/dir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/afs/dir.c b/fs/afs/dir.c index da9563d62b327..9750ac70f8ffb 100644 --- a/fs/afs/dir.c +++ b/fs/afs/dir.c @@ -1807,7 +1807,7 @@ static int afs_rename(struct inode *old_dir, struct dentry *old_dentry, afs_end_vnode_operation(&fc); goto error_rehash; } - new_data_version = new_dvnode->status.data_version; + new_data_version = new_dvnode->status.data_version + 1; } else { new_data_version = orig_data_version; new_scb = &scb[0]; -- 2.20.1
| |