svcrdma: Remove svc_rdma_recv_ctxt::rc_pages and ::rc_arg
authorChuck Lever <chuck.lever@oracle.com>
Wed, 13 Jan 2021 14:31:50 +0000 (09:31 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Wed, 31 Mar 2021 19:57:48 +0000 (15:57 -0400)
These fields are no longer used.

The size of struct svc_rdma_recv_ctxt is now less than 300 bytes on
x86_64, down from 2440 bytes.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
include/linux/sunrpc/svc_rdma.h
net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
net/sunrpc/xprtrdma/svc_rdma_rw.c

index b72f75091404694a0361fa95d3db3aa06a7b6b35..3184465de3a0bde38f7d9ebfb7ac1f12da7afbb1 100644 (file)
@@ -134,7 +134,6 @@ struct svc_rdma_recv_ctxt {
        struct rpc_rdma_cid     rc_cid;
        struct ib_sge           rc_recv_sge;
        void                    *rc_recv_buf;
-       struct xdr_buf          rc_arg;
        struct xdr_stream       rc_stream;
        bool                    rc_temp;
        u32                     rc_byte_len;
@@ -148,8 +147,6 @@ struct svc_rdma_recv_ctxt {
        struct svc_rdma_chunk   *rc_cur_result_payload;
        struct svc_rdma_pcl     rc_write_pcl;
        struct svc_rdma_pcl     rc_reply_pcl;
-
-       struct page             *rc_pages[RPCSVC_MAXPAGES];
 };
 
 struct svc_rdma_send_ctxt {
index 88d80d701241eb9366894050e64dddeb5dfbad52..232860ea683bfa865a3d1dea62f19a59d30e6087 100644 (file)
@@ -227,11 +227,6 @@ out_empty:
 void svc_rdma_recv_ctxt_put(struct svcxprt_rdma *rdma,
                            struct svc_rdma_recv_ctxt *ctxt)
 {
-       unsigned int i;
-
-       for (i = 0; i < ctxt->rc_page_count; i++)
-               put_page(ctxt->rc_pages[i]);
-
        pcl_free(&ctxt->rc_call_pcl);
        pcl_free(&ctxt->rc_read_pcl);
        pcl_free(&ctxt->rc_write_pcl);
index 36959a14375ed9c38822891d88a885257f95bd5a..5238bc829235b63ee36275e55d987d57df9dbb86 100644 (file)
@@ -1081,18 +1081,6 @@ int svc_rdma_process_read_list(struct svcxprt_rdma *rdma,
        struct svc_rdma_chunk_ctxt *cc;
        int ret;
 
-       /* The request (with page list) is constructed in
-        * head->rc_arg. Pages involved with RDMA Read I/O are
-        * transferred there.
-        */
-       head->rc_arg.head[0] = rqstp->rq_arg.head[0];
-       head->rc_arg.tail[0] = rqstp->rq_arg.tail[0];
-       head->rc_arg.pages = head->rc_pages;
-       head->rc_arg.page_base = 0;
-       head->rc_arg.page_len = 0;
-       head->rc_arg.len = rqstp->rq_arg.len;
-       head->rc_arg.buflen = rqstp->rq_arg.buflen;
-
        info = svc_rdma_read_info_alloc(rdma);
        if (!info)
                return -ENOMEM;