diff options
author | Jeff Layton <jlayton@redhat.com> | 2013-06-27 15:54:39 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2013-06-28 15:49:49 -0400 |
commit | 294ae81d4f89c76b7c5bbad7b14a43c02f6d738d (patch) | |
tree | 3473e0cf09852e3a9bcee85aaaf504c63de95b57 /fs/nfs | |
parent | d17540c61bc7b0c7be45d0d2b6244ddbc9ba6aee (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.c | 14 |
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 | */ |
1703 | static int nfs_request_mount(struct nfs_parsed_mount_data *args, | 1703 | static 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 | ||