NLM: Introduce an arguments structure for nlmclnt_init()

Clean up: pass 5 arguments to nlmclnt_init() in a structure similar to the
new nfs_client_initdata structure.

Signed-off-by: Chuck Lever <[email protected]>
This commit is contained in:
Chuck Lever 2008-01-15 16:04:20 -05:00 • committed by Trond Myklebust
commit 883bb163f8
3 changed files with 32 additions and 26 deletions

View file

@ -43,31 +43,25 @@ static LIST_HEAD(nlm_blocked);
/**
* nlmclnt_init - Set up per-NFS mount point lockd data structures
* @server_name: server's hostname
* @server_address: server's network address
* @server_addrlen: length of server's address
* @protocol: transport protocol lockd should use
* @nfs_version: NFS protocol version for this mount point
* @nlm_init: pointer to arguments structure
*
* Returns pointer to an appropriate nlm_host struct,
* or an ERR_PTR value.
*/
struct nlm_host *nlmclnt_init(const char *server_name,
const struct sockaddr *server_address,
size_t server_addrlen,
unsigned short protocol, u32 nfs_version)
struct nlm_host *nlmclnt_init(const struct nlmclnt_initdata *nlm_init)
{
struct nlm_host *host;
u32 nlm_version = (nfs_version == 2) ? 1 : 4;
u32 nlm_version = (nlm_init->nfs_version == 2) ? 1 : 4;
int status;
status = lockd_up(protocol);
status = lockd_up(nlm_init->protocol);
if (status < 0)
return ERR_PTR(status);
host = nlmclnt_lookup_host((struct sockaddr_in *)server_address,
protocol, nlm_version,
server_name, strlen(server_name));
host = nlmclnt_lookup_host((struct sockaddr_in *)nlm_init->address,
nlm_init->protocol, nlm_version,
nlm_init->hostname,
strlen(nlm_init->hostname));
if (host == NULL) {
lockd_down();
return ERR_PTR(-ENOLCK);