From: David Howells Date: Tue, 30 Jul 2019 13:38:51 +0000 (+0100) Subject: afs: Fix off-by-one in afs_rename() expected data version calculation X-Git-Tag: v5.15~5710^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=37c0bbb3326674940e657118306ac52364314523;p=platform%2Fkernel%2Flinux-starfive.git afs: Fix off-by-one in afs_rename() expected data version calculation 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 --- diff --git a/fs/afs/dir.c b/fs/afs/dir.c index e640d67..20aa18b 100644 --- a/fs/afs/dir.c +++ b/fs/afs/dir.c @@ -1804,7 +1804,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];