Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 217293
b: refs/heads/master
c: 8323c3b
h: refs/heads/master
i:
  217291: e9dff3d
v: v3
  • Loading branch information
J. Bruce Fields committed Oct 21, 2010
1 parent 4e9792d commit 7b0f17b
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 792c95dd519c54d6b0fd6401b3da7ea67b0d6b72
refs/heads/master: 8323c3b2a6b6543919d5ebdddc7d52f192126161
8 changes: 4 additions & 4 deletions trunk/fs/nfsd/nfs4callback.c
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@ int setup_callback_client(struct nfs4_client *clp, struct nfs4_cb_conn *conn)

if (!clp->cl_principal && (clp->cl_flavor >= RPC_AUTH_GSS_KRB5))
return -EINVAL;
if (conn->cb_minorversion) {
if (clp->cl_minorversion) {
args.bc_xprt = conn->cb_xprt;
args.prognumber = clp->cl_cb_session->se_cb_prog;
args.protocol = XPRT_TRANSPORT_BC_TCP;
Expand Down Expand Up @@ -620,7 +620,7 @@ static void nfsd4_cb_prepare(struct rpc_task *task, void *calldata)
struct nfsd4_callback *cb = calldata;
struct nfs4_delegation *dp = container_of(cb, struct nfs4_delegation, dl_recall);
struct nfs4_client *clp = dp->dl_client;
u32 minorversion = clp->cl_cb_conn.cb_minorversion;
u32 minorversion = clp->cl_minorversion;
int status = 0;

cb->cb_minorversion = minorversion;
Expand All @@ -645,9 +645,9 @@ static void nfsd4_cb_done(struct rpc_task *task, void *calldata)
struct nfs4_client *clp = dp->dl_client;

dprintk("%s: minorversion=%d\n", __func__,
clp->cl_cb_conn.cb_minorversion);
clp->cl_minorversion);

if (clp->cl_cb_conn.cb_minorversion) {
if (clp->cl_minorversion) {
/* No need for lock, access serialized in nfsd4_cb_prepare */
++clp->cl_cb_session->se_cb_seq_nr;
clear_bit(0, &clp->cl_cb_slot_busy);
Expand Down
12 changes: 10 additions & 2 deletions trunk/fs/nfsd/nfs4state.c
Original file line number Diff line number Diff line change
Expand Up @@ -782,7 +782,6 @@ static struct nfsd4_session *alloc_init_session(struct svc_rqst *rqstp, struct n
svc_xprt_get(rqstp->rq_xprt);
rpc_copy_addr((struct sockaddr *)&clp->cl_cb_conn.cb_addr, sa);
clp->cl_cb_conn.cb_addrlen = svc_addr_len(sa);
clp->cl_cb_conn.cb_minorversion = 1;
nfsd4_probe_callback(clp);
}
return new;
Expand Down Expand Up @@ -1200,7 +1199,6 @@ gen_callback(struct nfs4_client *clp, struct nfsd4_setclientid *se, u32 scopeid)
if (conn->cb_addr.ss_family == AF_INET6)
((struct sockaddr_in6 *)&conn->cb_addr)->sin6_scope_id = scopeid;

conn->cb_minorversion = 0;
conn->cb_prog = se->se_callback_prog;
conn->cb_ident = se->se_callback_ident;
return;
Expand Down Expand Up @@ -1540,6 +1538,11 @@ nfsd4_create_session(struct svc_rqst *rqstp,
goto out;
}

/*
* XXX: we should probably set this at creation time, and check
* for consistent minorversion use throughout:
*/
conf->cl_minorversion = 1;
/*
* We do not support RDMA or persistent sessions
*/
Expand Down Expand Up @@ -1857,6 +1860,11 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
goto out;
gen_clid(new);
}
/*
* XXX: we should probably set this at creation time, and check
* for consistent minorversion use throughout:
*/
new->cl_minorversion = 0;
gen_callback(new, setclid, rpc_get_scope_id(sa));
add_to_unconfirmed(new, strhashval);
setclid->se_clientid.cl_boot = new->cl_clientid.cl_boot;
Expand Down
2 changes: 1 addition & 1 deletion trunk/fs/nfsd/state.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ struct nfs4_cb_conn {
size_t cb_addrlen;
u32 cb_prog; /* used only in 4.0 case;
per-session otherwise */
u32 cb_minorversion;
u32 cb_ident; /* minorversion 0 only */
struct svc_xprt *cb_xprt; /* minorversion 1 only */
};
Expand Down Expand Up @@ -227,6 +226,7 @@ struct nfs4_client {
clientid_t cl_clientid; /* generated by server */
nfs4_verifier cl_confirm; /* generated by server */
u32 cl_firststate; /* recovery dir creation */
u32 cl_minorversion;

/* for v4.0 and v4.1 callbacks: */
struct nfs4_cb_conn cl_cb_conn;
Expand Down

0 comments on commit 7b0f17b

Please sign in to comment.