aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2013-06-27 15:54:39 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2013-06-28 15:49:49 -0400
commit294ae81d4f89c76b7c5bbad7b14a43c02f6d738d (patch)
tree3473e0cf09852e3a9bcee85aaaf504c63de95b57 /fs/nfs
parentd17540c61bc7b0c7be45d0d2b6244ddbc9ba6aee (diff)
nfs: move server_authlist into nfs_try_mount_request
In a later patch we're going to want to cycle over this list and attempt to call ->create_server for each different flavor until one succeeds. Move the list allocation to the stack of nfs_try_mount_request() and pass a pointer to it and its length to nfs_request_mount(). Cc: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs')
-rw-r--r--fs/nfs/super.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index afeee810f453..a0949f5c00ba 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -1701,10 +1701,10 @@ out_err:
1701 * corresponding to the provided path. 1701 * corresponding to the provided path.
1702 */ 1702 */
1703static int nfs_request_mount(struct nfs_parsed_mount_data *args, 1703static int nfs_request_mount(struct nfs_parsed_mount_data *args,
1704 struct nfs_fh *root_fh) 1704 struct nfs_fh *root_fh,
1705 rpc_authflavor_t *server_authlist,
1706 unsigned int *server_authlist_len)
1705{ 1707{
1706 rpc_authflavor_t server_authlist[NFS_MAX_SECFLAVORS];
1707 unsigned int server_authlist_len = ARRAY_SIZE(server_authlist);
1708 struct nfs_mount_request request = { 1708 struct nfs_mount_request request = {
1709 .sap = (struct sockaddr *) 1709 .sap = (struct sockaddr *)
1710 &args->mount_server.address, 1710 &args->mount_server.address,
@@ -1712,7 +1712,7 @@ static int nfs_request_mount(struct nfs_parsed_mount_data *args,
1712 .protocol = args->mount_server.protocol, 1712 .protocol = args->mount_server.protocol,
1713 .fh = root_fh, 1713 .fh = root_fh,
1714 .noresvport = args->flags & NFS_MOUNT_NORESVPORT, 1714 .noresvport = args->flags & NFS_MOUNT_NORESVPORT,
1715 .auth_flav_len = &server_authlist_len, 1715 .auth_flav_len = server_authlist_len,
1716 .auth_flavs = server_authlist, 1716 .auth_flavs = server_authlist,
1717 .net = args->net, 1717 .net = args->net,
1718 }; 1718 };
@@ -1763,8 +1763,12 @@ static struct nfs_server *nfs_try_mount_request(struct nfs_mount_info *mount_inf
1763 struct nfs_subversion *nfs_mod) 1763 struct nfs_subversion *nfs_mod)
1764{ 1764{
1765 int status; 1765 int status;
1766 struct nfs_parsed_mount_data *args = mount_info->parsed;
1767 rpc_authflavor_t authlist[NFS_MAX_SECFLAVORS];
1768 unsigned int authlist_len = ARRAY_SIZE(authlist);
1766 1769
1767 status = nfs_request_mount(mount_info->parsed, mount_info->mntfh); 1770 status = nfs_request_mount(args, mount_info->mntfh, authlist,
1771 &authlist_len);
1768 if (status) 1772 if (status)
1769 return ERR_PTR(status); 1773 return ERR_PTR(status);
1770 1774