Loading fs/lockd/clntlock.c +8 −14 Original line number Diff line number Diff line Loading @@ -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); Loading fs/nfs/client.c +10 −7 Original line number Diff line number Diff line Loading @@ -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); Loading include/linux/lockd/bind.h +14 −5 Original line number Diff line number Diff line Loading @@ -32,14 +32,23 @@ 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, Loading Loading
fs/lockd/clntlock.c +8 −14 Original line number Diff line number Diff line Loading @@ -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); Loading
fs/nfs/client.c +10 −7 Original line number Diff line number Diff line Loading @@ -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); Loading
include/linux/lockd/bind.h +14 −5 Original line number Diff line number Diff line Loading @@ -32,14 +32,23 @@ 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, Loading