[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