diff options
author | Pavel Shilovsky <pshilovsky@samba.org> | 2014-08-18 12:49:58 -0400 |
---|---|---|
committer | Steve French <smfrench@gmail.com> | 2014-08-17 06:08:46 -0400 |
commit | b46799a8f28c43c5264ac8d8ffa28b311b557e03 (patch) | |
tree | f519d2ee068849666edb8d563af7a711020ec6ff /fs/cifs | |
parent | 52755808d4525f4d5b86d112d36ffc7a46f3fb48 (diff) |
CIFS: Fix wrong directory attributes after rename
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.
Cc: <stable@vger.kernel.org>
Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs/cifs')
-rw-r--r-- | fs/cifs/inode.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index 41de3935caa0..753e7a3486de 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c | |||
@@ -1717,6 +1717,12 @@ unlink_target: | |||
1717 | target_dentry, to_name); | 1717 | target_dentry, to_name); |
1718 | } | 1718 | } |
1719 | 1719 | ||
1720 | /* force revalidate to go get info when needed */ | ||
1721 | CIFS_I(source_dir)->time = CIFS_I(target_dir)->time = 0; | ||
1722 | |||
1723 | source_dir->i_ctime = source_dir->i_mtime = target_dir->i_ctime = | ||
1724 | target_dir->i_mtime = current_fs_time(source_dir->i_sb); | ||
1725 | |||
1720 | cifs_rename_exit: | 1726 | cifs_rename_exit: |
1721 | kfree(info_buf_source); | 1727 | kfree(info_buf_source); |
1722 | kfree(from_name); | 1728 | kfree(from_name); |