include/linux/sunrpc/sched.h | 2 -- include/linux/sunrpc/xprt.h | 1 + net/sunrpc/auth_gss/auth_gss.c | 10 +++++----- 3 files changed, 6 insertions(+), 7 deletions(-) diff -u --recursive --new-file --show-c-function linux-2.6.1-17-krb5_integ/include/linux/sunrpc/sched.h linux-2.6.1-18-clnt_seqno_to_req/include/linux/sunrpc/sched.h --- linux-2.6.1-17-krb5_integ/include/linux/sunrpc/sched.h 2004-01-03 12:27:44.000000000 -0500 +++ linux-2.6.1-18-clnt_seqno_to_req/include/linux/sunrpc/sched.h 2004-01-03 12:32:23.000000000 -0500 @@ -48,8 +48,6 @@ struct rpc_task { __u8 tk_garb_retry, tk_cred_retry, tk_suid_retry; - u32 tk_gss_seqno; /* rpcsec_gss sequence number - used on this request */ /* * timeout_fn to be executed by timer bottom half diff -u --recursive --new-file --show-c-function linux-2.6.1-17-krb5_integ/include/linux/sunrpc/xprt.h linux-2.6.1-18-clnt_seqno_to_req/include/linux/sunrpc/xprt.h --- linux-2.6.1-17-krb5_integ/include/linux/sunrpc/xprt.h 2004-01-01 21:22:07.000000000 -0500 +++ linux-2.6.1-18-clnt_seqno_to_req/include/linux/sunrpc/xprt.h 2004-01-03 12:32:23.000000000 -0500 @@ -95,6 +95,7 @@ struct rpc_rqst { struct rpc_rqst * rq_next; /* free list */ int rq_cong; /* has incremented xprt->cong */ int rq_received; /* receive completed */ + u32 rq_seqno; /* gss seq no. used on req. */ struct list_head rq_list; diff -u --recursive --new-file --show-c-function linux-2.6.1-17-krb5_integ/net/sunrpc/auth_gss/auth_gss.c linux-2.6.1-18-clnt_seqno_to_req/net/sunrpc/auth_gss/auth_gss.c --- linux-2.6.1-17-krb5_integ/net/sunrpc/auth_gss/auth_gss.c 2004-01-03 12:32:03.000000000 -0500 +++ linux-2.6.1-18-clnt_seqno_to_req/net/sunrpc/auth_gss/auth_gss.c 2004-01-03 12:32:23.000000000 -0500 @@ -690,12 +690,12 @@ gss_marshal(struct rpc_task *task, u32 * goto out_put_ctx; } spin_lock(&ctx->gc_seq_lock); - task->tk_gss_seqno = ctx->gc_seq++; + req->rq_seqno = ctx->gc_seq++; spin_unlock(&ctx->gc_seq_lock); *p++ = htonl((u32) RPC_GSS_VERSION); *p++ = htonl((u32) ctx->gc_proc); - *p++ = htonl((u32) task->tk_gss_seqno); + *p++ = htonl((u32) req->rq_seqno); *p++ = htonl((u32) service); p = xdr_encode_netobj(p, &ctx->gc_wire_ctx); *cred_len = htonl((p - (cred_len + 1)) << 2); @@ -766,7 +766,7 @@ gss_validate(struct rpc_task *task, u32 goto out_bad; if (flav != RPC_AUTH_GSS) goto out_bad; - seq = htonl(task->tk_gss_seqno); + seq = htonl(task->tk_rqstp->rq_seqno); iov.iov_base = &seq; iov.iov_len = sizeof(seq); xdr_buf_from_iov(&iov, &verf_buf); @@ -832,7 +832,7 @@ gss_wrap_req(struct rpc_task *task, integ_len = p++; offset = (u8 *)p - (u8 *)snd_buf->head[0].iov_base; - *p++ = htonl(task->tk_gss_seqno); + *p++ = htonl(req->rq_seqno); status = encode(rqstp, p, obj); if (status) @@ -909,7 +909,7 @@ gss_unwrap_resp(struct rpc_task *task, mic_offset = integ_len + data_offset; if (mic_offset > rcv_buf->len) goto out; - if (ntohl(*p++) != task->tk_gss_seqno) + if (ntohl(*p++) != req->rq_seqno) goto out; if (xdr_buf_subsegment(rcv_buf, &integ_buf, data_offset,