NFS: Don't apply NFS_MOUNT_FLAGMASK to text-based mounts
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 15 Aug 2008 20:59:14 +0000 (16:59 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 7 Oct 2008 21:23:56 +0000 (17:23 -0400)
The point of introducing text-based mounts was to allow us to add
functionality without having to worry about legacy binary mount formats.
The mask should be there in order to ensure that binary formats don't start
enabling features that they cannot support. There is no justification for
applying it to the text mount path.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/client.c
fs/nfs/super.c

index 2accb67427c6979236809eb807b511a4e356d672..7547600b61741e26eb1bcaa52b4cfbad9349d673 100644 (file)
@@ -675,7 +675,7 @@ static int nfs_init_server(struct nfs_server *server,
        server->nfs_client = clp;
 
        /* Initialise the client representation from the mount data */
-       server->flags = data->flags & NFS_MOUNT_FLAGMASK;
+       server->flags = data->flags;
 
        if (data->rsize)
                server->rsize = nfs_block_size(data->rsize, NULL);
@@ -1072,7 +1072,7 @@ static int nfs4_init_server(struct nfs_server *server,
                goto error;
 
        /* Initialise the client representation from the mount data */
-       server->flags = data->flags & NFS_MOUNT_FLAGMASK;
+       server->flags = data->flags;
        server->caps |= NFS_CAP_ATOMIC_OPEN;
 
        if (data->rsize)
index e527fab40419e4ad5619e74db72ffc589e11e930..81686aeb1b5de0f330e929661dc3d16382bad01f 100644 (file)
@@ -1550,7 +1550,7 @@ static int nfs_validate_mount_data(void *options,
                 * Translate to nfs_parsed_mount_data, which nfs_fill_super
                 * can deal with.
                 */
-               args->flags             = data->flags;
+               args->flags             = data->flags & NFS_MOUNT_FLAGMASK;
                args->rsize             = data->rsize;
                args->wsize             = data->wsize;
                args->timeo             = data->timeo;