diff options
| -rw-r--r-- | fs/nfsd/nfs4callback.c | 3 | ||||
| -rw-r--r-- | fs/nfsd/nfs4state.c | 1 | ||||
| -rw-r--r-- | include/linux/nfsd/state.h | 1 | ||||
| -rw-r--r-- | net/sunrpc/rpc_pipe.c | 5 |
4 files changed, 9 insertions, 1 deletions
diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c index 3ca141782145..6d7d8c02c197 100644 --- a/fs/nfsd/nfs4callback.c +++ b/fs/nfsd/nfs4callback.c | |||
| @@ -358,6 +358,7 @@ static struct rpc_program cb_program = { | |||
| 358 | .nrvers = ARRAY_SIZE(nfs_cb_version), | 358 | .nrvers = ARRAY_SIZE(nfs_cb_version), |
| 359 | .version = nfs_cb_version, | 359 | .version = nfs_cb_version, |
| 360 | .stats = &cb_stats, | 360 | .stats = &cb_stats, |
| 361 | .pipe_dir_name = "/nfsd4_cb", | ||
| 361 | }; | 362 | }; |
| 362 | 363 | ||
| 363 | /* Reference counting, callback cleanup, etc., all look racy as heck. | 364 | /* Reference counting, callback cleanup, etc., all look racy as heck. |
| @@ -382,7 +383,7 @@ static int do_probe_callback(void *data) | |||
| 382 | .program = &cb_program, | 383 | .program = &cb_program, |
| 383 | .prognumber = cb->cb_prog, | 384 | .prognumber = cb->cb_prog, |
| 384 | .version = nfs_cb_version[1]->number, | 385 | .version = nfs_cb_version[1]->number, |
| 385 | .authflavor = RPC_AUTH_UNIX, /* XXX: need AUTH_GSS... */ | 386 | .authflavor = clp->cl_flavor, |
| 386 | .flags = (RPC_CLNT_CREATE_NOPING | RPC_CLNT_CREATE_QUIET), | 387 | .flags = (RPC_CLNT_CREATE_NOPING | RPC_CLNT_CREATE_QUIET), |
| 387 | .client_name = clp->cl_principal, | 388 | .client_name = clp->cl_principal, |
| 388 | }; | 389 | }; |
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index f3b9a8d064f3..07db31568ac9 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c | |||
| @@ -786,6 +786,7 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, | |||
| 786 | } | 786 | } |
| 787 | copy_verf(new, &clverifier); | 787 | copy_verf(new, &clverifier); |
| 788 | new->cl_addr = sin->sin_addr.s_addr; | 788 | new->cl_addr = sin->sin_addr.s_addr; |
| 789 | new->cl_flavor = rqstp->rq_flavor; | ||
| 789 | princ = svc_gss_principal(rqstp); | 790 | princ = svc_gss_principal(rqstp); |
| 790 | if (princ) { | 791 | if (princ) { |
| 791 | new->cl_principal = kstrdup(princ, GFP_KERNEL); | 792 | new->cl_principal = kstrdup(princ, GFP_KERNEL); |
diff --git a/include/linux/nfsd/state.h b/include/linux/nfsd/state.h index ce7cbf4b7c93..128298c0362d 100644 --- a/include/linux/nfsd/state.h +++ b/include/linux/nfsd/state.h | |||
| @@ -124,6 +124,7 @@ struct nfs4_client { | |||
| 124 | nfs4_verifier cl_verifier; /* generated by client */ | 124 | nfs4_verifier cl_verifier; /* generated by client */ |
| 125 | time_t cl_time; /* time of last lease renewal */ | 125 | time_t cl_time; /* time of last lease renewal */ |
| 126 | __be32 cl_addr; /* client ipaddress */ | 126 | __be32 cl_addr; /* client ipaddress */ |
| 127 | u32 cl_flavor; /* setclientid pseudoflavor */ | ||
| 127 | char *cl_principal; /* setclientid principal name */ | 128 | char *cl_principal; /* setclientid principal name */ |
| 128 | struct svc_cred cl_cred; /* setclientid principal */ | 129 | struct svc_cred cl_cred; /* setclientid principal */ |
| 129 | clientid_t cl_clientid; /* generated by server */ | 130 | clientid_t cl_clientid; /* generated by server */ |
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index 3105efbb182d..192453248870 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c | |||
| @@ -407,6 +407,7 @@ enum { | |||
| 407 | RPCAUTH_nfs, | 407 | RPCAUTH_nfs, |
| 408 | RPCAUTH_portmap, | 408 | RPCAUTH_portmap, |
| 409 | RPCAUTH_statd, | 409 | RPCAUTH_statd, |
| 410 | RPCAUTH_nfsd4_cb, | ||
| 410 | RPCAUTH_RootEOF | 411 | RPCAUTH_RootEOF |
| 411 | }; | 412 | }; |
| 412 | 413 | ||
| @@ -440,6 +441,10 @@ static struct rpc_filelist files[] = { | |||
| 440 | .name = "statd", | 441 | .name = "statd", |
| 441 | .mode = S_IFDIR | S_IRUGO | S_IXUGO, | 442 | .mode = S_IFDIR | S_IRUGO | S_IXUGO, |
| 442 | }, | 443 | }, |
| 444 | [RPCAUTH_nfsd4_cb] = { | ||
| 445 | .name = "nfsd4_cb", | ||
| 446 | .mode = S_IFDIR | S_IRUGO | S_IXUGO, | ||
| 447 | }, | ||
| 443 | }; | 448 | }; |
| 444 | 449 | ||
| 445 | enum { | 450 | enum { |
