diff options
Diffstat (limited to 'fs/lockd/mon.c')
| -rw-r--r-- | fs/lockd/mon.c | 21 | 
1 files changed, 11 insertions, 10 deletions
| diff --git a/fs/lockd/mon.c b/fs/lockd/mon.c index 65ba36b80a9e..7ef14b3c5bee 100644 --- a/fs/lockd/mon.c +++ b/fs/lockd/mon.c @@ -47,7 +47,7 @@ struct nsm_res {  	u32			state;  }; -static struct rpc_program	nsm_program; +static const struct rpc_program	nsm_program;  static				LIST_HEAD(nsm_handles);  static				DEFINE_SPINLOCK(nsm_lock); @@ -62,14 +62,14 @@ static inline struct sockaddr *nsm_addr(const struct nsm_handle *nsm)  	return (struct sockaddr *)&nsm->sm_addr;  } -static struct rpc_clnt *nsm_create(void) +static struct rpc_clnt *nsm_create(struct net *net)  {  	struct sockaddr_in sin = {  		.sin_family		= AF_INET,  		.sin_addr.s_addr	= htonl(INADDR_LOOPBACK),  	};  	struct rpc_create_args args = { -		.net			= &init_net, +		.net			= net,  		.protocol		= XPRT_TRANSPORT_UDP,  		.address		= (struct sockaddr *)&sin,  		.addrsize		= sizeof(sin), @@ -83,7 +83,8 @@ static struct rpc_clnt *nsm_create(void)  	return rpc_create(&args);  } -static int nsm_mon_unmon(struct nsm_handle *nsm, u32 proc, struct nsm_res *res) +static int nsm_mon_unmon(struct nsm_handle *nsm, u32 proc, struct nsm_res *res, +			 struct net *net)  {  	struct rpc_clnt	*clnt;  	int		status; @@ -99,7 +100,7 @@ static int nsm_mon_unmon(struct nsm_handle *nsm, u32 proc, struct nsm_res *res)  		.rpc_resp	= res,  	}; -	clnt = nsm_create(); +	clnt = nsm_create(net);  	if (IS_ERR(clnt)) {  		status = PTR_ERR(clnt);  		dprintk("lockd: failed to create NSM upcall transport, " @@ -149,7 +150,7 @@ int nsm_monitor(const struct nlm_host *host)  	 */  	nsm->sm_mon_name = nsm_use_hostnames ? nsm->sm_name : nsm->sm_addrbuf; -	status = nsm_mon_unmon(nsm, NSMPROC_MON, &res); +	status = nsm_mon_unmon(nsm, NSMPROC_MON, &res, host->net);  	if (unlikely(res.status != 0))  		status = -EIO;  	if (unlikely(status < 0)) { @@ -183,7 +184,7 @@ void nsm_unmonitor(const struct nlm_host *host)  	 && nsm->sm_monitored && !nsm->sm_sticky) {  		dprintk("lockd: nsm_unmonitor(%s)\n", nsm->sm_name); -		status = nsm_mon_unmon(nsm, NSMPROC_UNMON, &res); +		status = nsm_mon_unmon(nsm, NSMPROC_UNMON, &res, host->net);  		if (res.status != 0)  			status = -EIO;  		if (status < 0) @@ -534,19 +535,19 @@ static struct rpc_procinfo	nsm_procedures[] = {  	},  }; -static struct rpc_version	nsm_version1 = { +static const struct rpc_version nsm_version1 = {  		.number		= 1,  		.nrprocs	= ARRAY_SIZE(nsm_procedures),  		.procs		= nsm_procedures  }; -static struct rpc_version *	nsm_version[] = { +static const struct rpc_version *nsm_version[] = {  	[1] = &nsm_version1,  };  static struct rpc_stat		nsm_stats; -static struct rpc_program	nsm_program = { +static const struct rpc_program nsm_program = {  		.name		= "statd",  		.number		= NSM_PROGRAM,  		.nrvers		= ARRAY_SIZE(nsm_version), | 
