summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorPavel Shilovsky <pshilovsky@samba.org>2014-08-18 20:49:58 +0400
committerZefan Li <lizefan@huawei.com>2014-09-25 11:49:11 +0800
commitd06e4b08aa764b2999b6a67f1cf2b7794ae5b0e1 (patch)
tree65783bdbf7d8adb45b2701b0bdf6e72c68c14cc7 /fs
parenta0e5b9d2c3cdaf1f980409ec1a84db22abfd6958 (diff)
CIFS: Fix wrong directory attributes after rename
commit b46799a8f28c43c5264ac8d8ffa28b311b557e03 upstream. When we requests rename we also need to update attributes of both source and target parent directories. Not doing it causes generic/309 xfstest to fail on SMB2 mounts. Fix this by marking these directories for force revalidating. Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org> Signed-off-by: Steve French <smfrench@gmail.com> Signed-off-by: Zefan Li <lizefan@huawei.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/cifs/inode.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 43944c6d7b41..8d6ac6bec9e9 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -1653,6 +1653,12 @@ unlink_target:
target_dentry, toName);
}
+ /* force revalidate to go get info when needed */
+ CIFS_I(source_dir)->time = CIFS_I(target_dir)->time = 0;
+
+ source_dir->i_ctime = source_dir->i_mtime = target_dir->i_ctime =
+ target_dir->i_mtime = current_fs_time(source_dir->i_sb);
+
cifs_rename_exit:
kfree(info_buf_source);
kfree(fromName);