NFS: Ensure that the nfs_client 'net' field is always set
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Sun, 19 Feb 2012 07:44:07 +0000 (08:44 +0100)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Sun, 19 Feb 2012 07:44:07 +0000 (08:44 +0100)
Currently, the nfs_parsed_mount_data->net field is initialised in
the nfs_parse_mount_options() function, which means that it only
gets set if we're using text based mounts. The legacy binary
mount interface is therefore broken.

Fix is to initialise the ->net field in nfs_alloc_parsed_mount_data.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Stanislav Kinsbursky <skinsbursky@parallels.com>
fs/nfs/super.c

index d05024a1898467eca2c797e1262571031d0882bf..6708f3044eb005c278299b2d40513f22c35c1604 100644 (file)
@@ -911,6 +911,7 @@ static struct nfs_parsed_mount_data *nfs_alloc_parsed_mount_data(unsigned int ve
                data->auth_flavor_len   = 1;
                data->version           = version;
                data->minorversion      = 0;
+               data->net               = current->nsproxy->net_ns;
                security_init_mnt_opts(&data->lsm_opts);
        }
        return data;
@@ -1110,8 +1111,6 @@ static int nfs_parse_mount_options(char *raw,
 
        free_secdata(secdata);
 
-       mnt->net = current->nsproxy->net_ns;
-
        while ((p = strsep(&raw, ",")) != NULL) {
                substring_t args[MAX_OPT_ARGS];
                unsigned long option;