knfsd: remove nfsrdma defer and revisit code
Subsystems (3)
RFC PATCH 3/5 knfsd: remove nfsrdma defer and revisit code
Remove the NFS/RDMA code which handles deferring and revisiting calls. This is redundant now as the generic code handles it.
Signed-off-by Greg Banks <[email protected]>
---
include/linux/sunrpc/svc_rdma.h | 1 net/sunrpc/svc_rdma_marshal.c | 56 -------------------- net/sunrpc/svc_rdma_recvfrom.c | 71 ------------------------- net/sunrpc/svc_rdma_transport.c | 81 ----------------------------- 4 files changed, 209 deletions(-)
net/sunrpc/svc_rdma_recvfrom.c +0 -71
@@ -394,74 +394,6 @@ static int rdma_read_xdr(struct svcxprt_return ret; } -static struct svc_deferred_req * -svc_rdma_deferred_dequeue (struct svc_sock *xprt) -{ -struct svc_deferred_req *dr =NULL ; -spin_lock_bh (&xprt->sk_server->sv_lock); -clear_bit (SK_DEFERRED , &xprt->sk_flags); -if (!list_empty (&xprt->sk_deferred)) { - dr =list_entry (xprt->sk_deferred.next, - struct svc_deferred_req, - handle.recent); -list_del_init (&dr->handle.recent); -set_bit (SK_DEFERRED , &xprt->sk_flags); - } -spin_unlock_bh (&xprt->sk_server->sv_lock); -return dr; -} - -static int svc_rdma_deferred_recv (struct svc_rqst *rqstp) -{ -struct svc_sock *xprt = rqstp->rq_sock; -struct svcxprt_rdma *rdma_xprt = (struct svcxprt_rdma *)xprt; -struct svc_rdma_deferred_req *dr = - (struct svc_rdma_deferred_req *)rqstp->rq_deferred; -void *page_va; -int ret; -int len; - - page_va =page_address (dr->arg_page); -dprintk ("svcrdma: satisfying receive from deferred req=%p\n" -"\tpage=%p, page va=%p\n\targ_len=%d\n" , - dr, dr->arg_page, page_va, - dr->arg_len); -DBG_DUMP_RDMAHDR (__FUNCTION__, page_va); - -/* Rebuild the thread context */ - rqstp->rq_prot =IPPROTO_MAX ; -memcpy (&rqstp->rq_addr, - &rdma_xprt->sc_cm_id->route.addr.dst_addr, -sizeof (rqstp->rq_addr)); - rqstp->rq_addrlen =sizeof (rqstp->rq_addr); - - rqstp->rq_argused =1 ; -put_page (rqstp->rq_argpages[0 ]); - rqstp->rq_argpages[0 ] = dr->arg_page; - rqstp->rq_arg.head[0 ].iov_base = page_va; - rqstp->rq_arg.head[0 ].iov_len = dr->arg_len; - rqstp->rq_arg.tail[0 ].iov_base =NULL ; - rqstp->rq_arg.tail[0 ].iov_len =0 ; - rqstp->rq_arg.pages =NULL ; - rqstp->rq_arg.page_base =0 ; - rqstp->rq_arg.page_len =0 ; - rqstp->rq_arg.len = dr->arg_len; - - len =svc_rdma_xdr_decode_deferred_req (rqstp); -DBG_DUMP_XDR (__FUNCTION__, &rqstp->rq_arg); - - ret = rqstp->rq_arg.head[0 ].iov_len - + rqstp->rq_arg.page_len - + rqstp->rq_arg.tail[0 ].iov_len; - - rqstp->rq_deferred =NULL ; -kfree (dr); - -clear_bit (SK_BUSY , &xprt->sk_flags); -svc_sock_enqueue (xprt); -return ret; -} -/* * Set up the rqstp thread context to point to the RQ buffer. If necessary, * pull additional data from the client with an RDMA_READ request.
@@ -478,9 +410,6 @@ int svc_rdma_recvfrom(struct svc_rqst *runsigned long flags;dprintk ("svcrdma: rqstp=%p\n" , rqstp); -if (unlikely (test_bit (SK_DEFERRED , &xprt->sk_flags))) -if ((rqstp->rq_deferred =svc_rdma_deferred_dequeue (xprt))) -return svc_rdma_deferred_recv (rqstp); poll_dto_q:/*
net/sunrpc/svc_rdma_transport.c +0 -81
90 lines not on this page · raw message
include/linux/sunrpc/svc_rdma.h +0 -1
@@ -140,7 +140,6 @@ struct svcxprt_rdma {/* svc_rdma_marshal.c */ extern void svc_rdma_rcl_chunk_counts (struct rpcrdma_read_chunk *,int *,int *);extern int svc_rdma_xdr_decode_req (struct rpcrdma_msg **,struct svc_rqst *); -extern int svc_rdma_xdr_decode_deferred_req (struct svc_rqst *);extern int svc_rdma_xdr_encode_error (struct svcxprt_rdma *,struct rpcrdma_msg *,enum rpcrdma_errcode ,u32 *);extern void svc_rdma_xdr_encode_write_list (struct rpcrdma_msg *,int );
net/sunrpc/svc_rdma_marshal.c +0 -56
62 lines not on this page · raw message
Signature · 12 lines
Greg Banks, R&D Software Engineer, SGI Australian Software Group. Apparently, I'm Bedevere. Which MPHG character are you? I don't speak for SGI. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ NFS maillist - [email protected] https://lists.sourceforge.net/lists/listinfo/nfs