diff options
author | 2014-08-18 20:49:58 +0400 | |
---|---|---|
committer | 2014-08-17 05:08:46 -0500 | |
commit | b46799a8f28c43c5264ac8d8ffa28b311b557e03 (patch) | |
tree | f519d2ee068849666edb8d563af7a711020ec6ff /fs | |
parent | CIFS: Fix SMB2 readdir error handling (diff) | |
download | linux-b46799a8f28c43c5264ac8d8ffa28b311b557e03.tar.gz linux-b46799a8f28c43c5264ac8d8ffa28b311b557e03.tar.bz2 linux-b46799a8f28c43c5264ac8d8ffa28b311b557e03.zip |
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')
-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: target_dentry, to_name); } + /* 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(from_name); |