diff options
author | Weston Andros Adamson <dros@netapp.com> | 2013-10-18 15:15:16 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2013-10-28 15:36:58 -0400 |
commit | a3f73c27afff9590a4432879b7145289cb89cf0a (patch) | |
tree | 6d010e25f69bbcee77e22285b280a5f446add578 /fs/nfs/nfs4client.c | |
parent | 47fd88e6b79c55e6acccaf832078ed1a340672fa (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.c | 16 |
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 | */ |
951 | static int nfs4_init_server(struct nfs_server *server, | 951 | static 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 | ||
998 | error: | 1000 | error: |
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); |