aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4client.c
diff options
context:
space:
mode:
authorWeston Andros Adamson <dros@netapp.com>2013-10-18 15:15:16 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2013-10-28 15:36:58 -0400
commita3f73c27afff9590a4432879b7145289cb89cf0a (patch)
tree6d010e25f69bbcee77e22285b280a5f446add578 /fs/nfs/nfs4client.c
parent47fd88e6b79c55e6acccaf832078ed1a340672fa (diff)
NFS: separate passed security flavs from selected
When filling parsed_mount_data, store the parsed sec= mount option in the new struct nfs_auth_info and the chosen flavor in selected_flavor. This patch lays the groundwork for supporting multiple sec= options. Signed-off-by: Weston Andros Adamson <dros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4client.c')
-rw-r--r--fs/nfs/nfs4client.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c
index 0cde95e9bd6a..d65090e5d00f 100644
--- a/fs/nfs/nfs4client.c
+++ b/fs/nfs/nfs4client.c
@@ -949,9 +949,8 @@ out:
949 * Create a version 4 volume record 949 * Create a version 4 volume record
950 */ 950 */
951static int nfs4_init_server(struct nfs_server *server, 951static int nfs4_init_server(struct nfs_server *server,
952 const struct nfs_parsed_mount_data *data) 952 struct nfs_parsed_mount_data *data)
953{ 953{
954 rpc_authflavor_t pseudoflavor = RPC_AUTH_UNIX;
955 struct rpc_timeout timeparms; 954 struct rpc_timeout timeparms;
956 int error; 955 int error;
957 956
@@ -964,8 +963,10 @@ static int nfs4_init_server(struct nfs_server *server,
964 server->flags = data->flags; 963 server->flags = data->flags;
965 server->options = data->options; 964 server->options = data->options;
966 965
967 if (data->auth_flavor_len >= 1) 966 if (data->auth_info.flavor_len >= 1)
968 pseudoflavor = data->auth_flavors[0]; 967 data->selected_flavor = data->auth_info.flavors[0];
968 else
969 data->selected_flavor = RPC_AUTH_UNIX;
969 970
970 /* Get a client record */ 971 /* Get a client record */
971 error = nfs4_set_client(server, 972 error = nfs4_set_client(server,
@@ -973,7 +974,7 @@ static int nfs4_init_server(struct nfs_server *server,
973 (const struct sockaddr *)&data->nfs_server.address, 974 (const struct sockaddr *)&data->nfs_server.address,
974 data->nfs_server.addrlen, 975 data->nfs_server.addrlen,
975 data->client_address, 976 data->client_address,
976 pseudoflavor, 977 data->selected_flavor,
977 data->nfs_server.protocol, 978 data->nfs_server.protocol,
978 &timeparms, 979 &timeparms,
979 data->minorversion, 980 data->minorversion,
@@ -993,7 +994,8 @@ static int nfs4_init_server(struct nfs_server *server,
993 994
994 server->port = data->nfs_server.port; 995 server->port = data->nfs_server.port;
995 996
996 error = nfs_init_server_rpcclient(server, &timeparms, pseudoflavor); 997 error = nfs_init_server_rpcclient(server, &timeparms,
998 data->selected_flavor);
997 999
998error: 1000error:
999 /* Done */ 1001 /* Done */
@@ -1020,7 +1022,7 @@ struct nfs_server *nfs4_create_server(struct nfs_mount_info *mount_info,
1020 if (!server) 1022 if (!server)
1021 return ERR_PTR(-ENOMEM); 1023 return ERR_PTR(-ENOMEM);
1022 1024
1023 auth_probe = mount_info->parsed->auth_flavor_len < 1; 1025 auth_probe = mount_info->parsed->auth_info.flavor_len < 1;
1024 1026
1025 /* set up the general RPC client */ 1027 /* set up the general RPC client */
1026 error = nfs4_init_server(server, mount_info->parsed); 1028 error = nfs4_init_server(server, mount_info->parsed);