aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs
diff options
context:
space:
mode:
authorPavel Shilovsky <pshilovsky@samba.org>2014-08-18 20:49:58 +0400
committerBen Hutchings <ben@decadent.org.uk>2014-09-13 23:41:45 +0100
commit9c50d4fd5ca30bd16451335e70295a69b15aa54f (patch)
treeeeb366df8ddf943ef53f2576b7970fe855ff4e0c /fs/cifs
parentd26e2c021768dc036feb21b9e943b7a5b4f42332 (diff)
downloadkernel_samsung_smdk4412-9c50d4fd5ca30bd16451335e70295a69b15aa54f.zip
kernel_samsung_smdk4412-9c50d4fd5ca30bd16451335e70295a69b15aa54f.tar.gz
kernel_samsung_smdk4412-9c50d4fd5ca30bd16451335e70295a69b15aa54f.tar.bz2
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: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'fs/cifs')
-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 20431b4..c0c51e1 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -1638,6 +1638,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);