nfs: Apply NFS_MOUNT_CMP_FLAGMASK to nfs_compare_remount_data()
authorScott Mayhew <smayhew@redhat.com>
Thu, 29 May 2014 20:41:22 +0000 (16:41 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Thu, 29 May 2014 20:46:09 +0000 (16:46 -0400)
Those flags are obsolete and checking them can incorrectly cause
remount operations to fail.

Signed-off-by: Scott Mayhew <smayhew@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/super.c

index 2cb56943e2322a00e65c433d0f592ae6f32c4360..1a6d7ac9d9d2abdab1d042a67904d9ffeefc26f4 100644 (file)
@@ -2180,11 +2180,23 @@ out_no_address:
        return -EINVAL;
 }
 
+#define NFS_MOUNT_CMP_FLAGMASK ~(NFS_MOUNT_INTR \
+               | NFS_MOUNT_SECURE \
+               | NFS_MOUNT_TCP \
+               | NFS_MOUNT_VER3 \
+               | NFS_MOUNT_KERBEROS \
+               | NFS_MOUNT_NONLM \
+               | NFS_MOUNT_BROKEN_SUID \
+               | NFS_MOUNT_STRICTLOCK \
+               | NFS_MOUNT_UNSHARED \
+               | NFS_MOUNT_NORESVPORT \
+               | NFS_MOUNT_LEGACY_INTERFACE)
+
 static int
 nfs_compare_remount_data(struct nfs_server *nfss,
                         struct nfs_parsed_mount_data *data)
 {
-       if (data->flags != nfss->flags ||
+       if ((data->flags ^ nfss->flags) & NFS_MOUNT_CMP_FLAGMASK ||
            data->rsize != nfss->rsize ||
            data->wsize != nfss->wsize ||
            data->version != nfss->nfs_client->rpc_ops->version ||
@@ -2347,18 +2359,6 @@ void nfs_clone_super(struct super_block *sb, struct nfs_mount_info *mount_info)
        nfs_initialise_sb(sb);
 }
 
-#define NFS_MOUNT_CMP_FLAGMASK ~(NFS_MOUNT_INTR \
-               | NFS_MOUNT_SECURE \
-               | NFS_MOUNT_TCP \
-               | NFS_MOUNT_VER3 \
-               | NFS_MOUNT_KERBEROS \
-               | NFS_MOUNT_NONLM \
-               | NFS_MOUNT_BROKEN_SUID \
-               | NFS_MOUNT_STRICTLOCK \
-               | NFS_MOUNT_UNSHARED \
-               | NFS_MOUNT_NORESVPORT \
-               | NFS_MOUNT_LEGACY_INTERFACE)
-
 static int nfs_compare_mount_options(const struct super_block *s, const struct nfs_server *b, int flags)
 {
        const struct nfs_server *a = s->s_fs_info;