CIFS: Fix wrong directory attributes after rename
authorPavel Shilovsky <pshilovsky@samba.org>
Mon, 18 Aug 2014 16:49:58 +0000 (20:49 +0400)
committerSteve French <smfrench@gmail.com>
Sun, 17 Aug 2014 10:08:46 +0000 (05:08 -0500)
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>
fs/cifs/inode.c

index 41de3935caa0cff86e58e8c4a0db829e4ca88a7e..753e7a3486de41fa6b55f758389a9550992d5399 100644 (file)
@@ -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);