[pnfs] [PATCH 11/11] Enable xprt_alloc_bc_request().

ricardo.labiaga at netapp.com ricardo.labiaga at netapp.com
Tue Nov 27 23:25:21 EST 2007


Previous commit had it commented out.  Also set req->rq_xid in
xprtsock.c:xs_tcp_read_request() since this is where struct sock_xprt
is defined - it contains the original tcp_xid.

Signed-off-by: Ricardo Labiaga <ricardo.labiaga at netapp.com>
---
 net/sunrpc/backchannel_rqst.c |    8 --------
 net/sunrpc/xprtsock.c         |    2 ++
 2 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/net/sunrpc/backchannel_rqst.c b/net/sunrpc/backchannel_rqst.c
index 214e36b..47b3040 100644
--- a/net/sunrpc/backchannel_rqst.c
+++ b/net/sunrpc/backchannel_rqst.c
@@ -85,30 +85,23 @@ EXPORT_SYMBOL(xprt_destroy_backchannel);
 
 struct rpc_rqst *xprt_alloc_bc_request(struct rpc_xprt *xprt)
 {
-/*
 	struct rpc_rqst *req;
 	struct page *page;
 	struct xdr_buf *xbufp;
-	struct sock_xprt *transport = container_of(xprt, struct sock_xprt, xprt);
-
 
 	BUG_ON(xprt->bc_mempool == NULL);
 
 	req = mempool_alloc(xprt->bc_mempool, GFP_ATOMIC);
-
 	if (!req)
 		goto out;
 
 	req->rq_xprt = xprt;
-	req->rq_xid = transport->tcp_xid;
-
 	page = alloc_page(GFP_ATOMIC);
 
 	if (!page)
 		goto out_free;
 
 	xbufp = &req->rq_private_buf;
-
 	xbufp->head[0].iov_base = page_address(page);
 	xbufp->head[0].iov_len = PAGE_SIZE;
 	xbufp->tail[0].iov_len = 0;
@@ -136,7 +129,6 @@ out_free_page:
 out_free:
 	mempool_free(req, xprt->bc_mempool);
 out:
-*/
 	return NULL;
 }
 
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index 0eda706..883a134 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -979,6 +979,7 @@ static inline void xs_tcp_read_request(struct rpc_xprt *xprt, struct xdr_skb_rea
 		/* RPC_CALL */
 		if (xprt->bc_mempool) {
 			req = xprt_alloc_bc_request(xprt);
+			req->rq_xid = transport->tcp_xid;
 		} else {
 			dprintk("RPC:       Unexpected callback dropped\n");
 			goto error;
@@ -1057,6 +1058,7 @@ out:
  			 * requests.  Wake it up after adding enqueing the
  			 * request.
  			 */
+			dprintk("RPC:       add callback request to list\n");
 			spin_lock(&xprt->serv->sv_cb_lock);
 			list_add(&req->rq_list, &xprt->serv->sv_cb_list);
 			spin_unlock(&xprt->serv->sv_cb_lock);
-- 
1.5.2


More information about the pNFS mailing list