CIFS: check CIFS_MOUNT_NO_DFS when trying to reuse existing sb
authorAurelien Aptel <aaptel@suse.com>
Tue, 2 Apr 2019 11:00:33 +0000 (13:00 +0200)
committerSteve French <stfrench@microsoft.com>
Wed, 8 May 2019 04:24:54 +0000 (23:24 -0500)
if we mount A then mount A again with nodfs, we shouldn't reuse the
superblock. document the purpose of the defines as well.

there are most likely more flags that needs to be added to this mask,
in fact the logic to find them should be which flag should
be *ignored* when trying to reuse an existing sb.

Signed-off-by: Aurelien Aptel <aaptel@suse.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/cifsglob.h

index 779ceb1f0412d78bbd567ca26addcf553a551b54..0dc55f4e69291a2a8b78d874e074eb3361c51c9e 100644 (file)
@@ -596,6 +596,10 @@ struct smb_vol {
        unsigned int max_credits; /* smb3 max_credits 10 < credits < 60000 */
 };
 
+/**
+ * CIFS superblock mount flags (mnt_cifs_flags) to consider when
+ * trying to reuse existing superblock for a new mount
+ */
 #define CIFS_MOUNT_MASK (CIFS_MOUNT_NO_PERM | CIFS_MOUNT_SET_UID | \
                         CIFS_MOUNT_SERVER_INUM | CIFS_MOUNT_DIRECT_IO | \
                         CIFS_MOUNT_NO_XATTR | CIFS_MOUNT_MAP_SPECIAL_CHR | \
@@ -606,8 +610,13 @@ struct smb_vol {
                         CIFS_MOUNT_NOPOSIXBRL | CIFS_MOUNT_NOSSYNC | \
                         CIFS_MOUNT_FSCACHE | CIFS_MOUNT_MF_SYMLINKS | \
                         CIFS_MOUNT_MULTIUSER | CIFS_MOUNT_STRICT_IO | \
-                        CIFS_MOUNT_CIFS_BACKUPUID | CIFS_MOUNT_CIFS_BACKUPGID)
+                        CIFS_MOUNT_CIFS_BACKUPUID | CIFS_MOUNT_CIFS_BACKUPGID | \
+                        CIFS_MOUNT_NO_DFS)
 
+/**
+ * Generic VFS superblock mount flags (s_flags) to consider when
+ * trying to reuse existing superblock for a new mount
+ */
 #define CIFS_MS_MASK (SB_RDONLY | SB_MANDLOCK | SB_NOEXEC | SB_NOSUID | \
                      SB_NODEV | SB_SYNCHRONOUS)