Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=883bb163f84e0a54b29846c61621f52db3f27393
Commit:     883bb163f84e0a54b29846c61621f52db3f27393
Parent:     1093a60ef34bb12010fe7ea4b780bee1c57cfbbe
Author:     Chuck Lever <[EMAIL PROTECTED]>
AuthorDate: Tue Jan 15 16:04:20 2008 -0500
Committer:  Trond Myklebust <[EMAIL PROTECTED]>
CommitDate: Wed Jan 30 02:06:07 2008 -0500

    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]>
---
 fs/lockd/clntlock.c        |   22 ++++++++--------------
 fs/nfs/client.c            |   17 ++++++++++-------
 include/linux/lockd/bind.h |   19 ++++++++++++++-----
 3 files changed, 32 insertions(+), 26 deletions(-)

diff --git a/fs/lockd/clntlock.c b/fs/lockd/clntlock.c
index 9a8f4f4..0b45fd3 100644
--- a/fs/lockd/clntlock.c
+++ b/fs/lockd/clntlock.c
@@ -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);
diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 0b3ce86..7a15832 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -468,18 +468,21 @@ static int nfs_start_lockd(struct nfs_server *server)
 {
        struct nlm_host *host;
        struct nfs_client *clp = server->nfs_client;
-       u32 nfs_version = clp->rpc_ops->version;
-       unsigned short protocol = server->flags & NFS_MOUNT_TCP ?
-                                               IPPROTO_TCP : IPPROTO_UDP;
+       struct nlmclnt_initdata nlm_init = {
+               .hostname       = clp->cl_hostname,
+               .address        = (struct sockaddr *)&clp->cl_addr,
+               .addrlen        = clp->cl_addrlen,
+               .protocol       = server->flags & NFS_MOUNT_TCP ?
+                                               IPPROTO_TCP : IPPROTO_UDP,
+               .nfs_version    = clp->rpc_ops->version,
+       };
 
-       if (nfs_version > 3)
+       if (nlm_init.nfs_version > 3)
                return 0;
        if (server->flags & NFS_MOUNT_NONLM)
                return 0;
 
-       host = nlmclnt_init(clp->cl_hostname,
-                           (struct sockaddr *)&clp->cl_addr,
-                           clp->cl_addrlen, protocol, nfs_version);
+       host = nlmclnt_init(&nlm_init);
        if (IS_ERR(host))
                return PTR_ERR(host);
 
diff --git a/include/linux/lockd/bind.h b/include/linux/lockd/bind.h
index 7336807..3d25bcd 100644
--- a/include/linux/lockd/bind.h
+++ b/include/linux/lockd/bind.h
@@ -33,13 +33,22 @@ struct nlmsvc_binding {
 extern struct nlmsvc_binding * nlmsvc_ops;
 
 /*
+ * Similar to nfs_client_initdata, but without the NFS-specific
+ * rpc_ops field.
+ */
+struct nlmclnt_initdata {
+       const char              *hostname;
+       const struct sockaddr   *address;
+       size_t                  addrlen;
+       unsigned short          protocol;
+       u32                     nfs_version;
+};
+
+/*
  * Functions exported by the lockd module
  */
-extern struct nlm_host *nlmclnt_init(const char *server_name,
-                                       const struct sockaddr *server_address,
-                                       size_t server_addrlen,
-                                       unsigned short protocol,
-                                       u32 nfs_version);
+
+extern struct nlm_host *nlmclnt_init(const struct nlmclnt_initdata *nlm_init);
 extern void    nlmclnt_done(struct nlm_host *host);
 
 extern int     nlmclnt_proc(struct nlm_host *host, int cmd,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to