diff options
Diffstat (limited to 'fs/nfs/callback.c')
| -rw-r--r-- | fs/nfs/callback.c | 19 | 
1 files changed, 9 insertions, 10 deletions
| diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c index 516f3375e067..eb95f5091c1a 100644 --- a/fs/nfs/callback.c +++ b/fs/nfs/callback.c @@ -85,7 +85,7 @@ nfs4_callback_svc(void *vrqstp)  		}  		if (err < 0) {  			if (err != preverr) { -				printk(KERN_WARNING "%s: unexpected error " +				printk(KERN_WARNING "NFS: %s: unexpected error "  					"from svc_recv (%d)\n", __func__, err);  				preverr = err;  			} @@ -101,12 +101,12 @@ nfs4_callback_svc(void *vrqstp)  /*   * Prepare to bring up the NFSv4 callback service   */ -struct svc_rqst * -nfs4_callback_up(struct svc_serv *serv) +static struct svc_rqst * +nfs4_callback_up(struct svc_serv *serv, struct rpc_xprt *xprt)  {  	int ret; -	ret = svc_create_xprt(serv, "tcp", &init_net, PF_INET, +	ret = svc_create_xprt(serv, "tcp", xprt->xprt_net, PF_INET,  				nfs_callback_set_tcpport, SVC_SOCK_ANONYMOUS);  	if (ret <= 0)  		goto out_err; @@ -114,7 +114,7 @@ nfs4_callback_up(struct svc_serv *serv)  	dprintk("NFS: Callback listener port = %u (af %u)\n",  			nfs_callback_tcpport, PF_INET); -	ret = svc_create_xprt(serv, "tcp", &init_net, PF_INET6, +	ret = svc_create_xprt(serv, "tcp", xprt->xprt_net, PF_INET6,  				nfs_callback_set_tcpport, SVC_SOCK_ANONYMOUS);  	if (ret > 0) {  		nfs_callback_tcpport6 = ret; @@ -172,7 +172,7 @@ nfs41_callback_svc(void *vrqstp)  /*   * Bring up the NFSv4.1 callback service   */ -struct svc_rqst * +static struct svc_rqst *  nfs41_callback_up(struct svc_serv *serv, struct rpc_xprt *xprt)  {  	struct svc_rqst *rqstp; @@ -183,7 +183,7 @@ nfs41_callback_up(struct svc_serv *serv, struct rpc_xprt *xprt)  	 * fore channel connection.  	 * Returns the input port (0) and sets the svc_serv bc_xprt on success  	 */ -	ret = svc_create_xprt(serv, "tcp-bc", &init_net, PF_INET, 0, +	ret = svc_create_xprt(serv, "tcp-bc", xprt->xprt_net, PF_INET, 0,  			      SVC_SOCK_ANONYMOUS);  	if (ret < 0) {  		rqstp = ERR_PTR(ret); @@ -269,7 +269,7 @@ int nfs_callback_up(u32 minorversion, struct rpc_xprt *xprt)  					serv, xprt, &rqstp, &callback_svc);  	if (!minorversion_setup) {  		/* v4.0 callback setup */ -		rqstp = nfs4_callback_up(serv); +		rqstp = nfs4_callback_up(serv, xprt);  		callback_svc = nfs4_callback_svc;  	} @@ -332,7 +332,6 @@ void nfs_callback_down(int minorversion)  int  check_gss_callback_principal(struct nfs_client *clp, struct svc_rqst *rqstp)  { -	struct rpc_clnt *r = clp->cl_rpcclient;  	char *p = svc_gss_principal(rqstp);  	if (rqstp->rq_authop->flavour != RPC_AUTH_GSS) @@ -353,7 +352,7 @@ check_gss_callback_principal(struct nfs_client *clp, struct svc_rqst *rqstp)  	if (memcmp(p, "nfs@", 4) != 0)  		return 0;  	p += 4; -	if (strcmp(p, r->cl_server) != 0) +	if (strcmp(p, clp->cl_hostname) != 0)  		return 0;  	return 1;  } | 
