summaryrefslogtreecommitdiffstats
path: root/net/sunrpc
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2017-10-20 10:47:39 -0400
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2017-11-17 13:47:55 -0500
commitad99f0530710af72b5bbecda9e770c736e92b328 (patch)
tree7acfcb6de813452c335813da9eb291e2df2aa75d /net/sunrpc
parentbe798f9082aa54524b209fac2c8164c81cd28f77 (diff)
downloadlinux-stable-ad99f0530710af72b5bbecda9e770c736e92b328.tar.gz
linux-stable-ad99f0530710af72b5bbecda9e770c736e92b328.tar.bz2
linux-stable-ad99f0530710af72b5bbecda9e770c736e92b328.zip
xprtrdma: Clean up SGE accounting in rpcrdma_prepare_msg_sges()
Clean up. rpcrdma_prepare_hdr_sge() sets num_sge to one, then rpcrdma_prepare_msg_sges() sets num_sge again to the count of SGEs it added, plus one for the header SGE just mapped in rpcrdma_prepare_hdr_sge(). This is confusing, and nails in an assumption about when these functions are called. Instead, maintain a running count that both functions can update with just the number of SGEs they have added to the SGE array. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'net/sunrpc')
-rw-r--r--net/sunrpc/xprtrdma/rpc_rdma.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sunrpc/xprtrdma/rpc_rdma.c b/net/sunrpc/xprtrdma/rpc_rdma.c
index b8818c09a621..3c9255824d94 100644
--- a/net/sunrpc/xprtrdma/rpc_rdma.c
+++ b/net/sunrpc/xprtrdma/rpc_rdma.c
@@ -637,7 +637,7 @@ map_tail:
}
out:
- req->rl_send_wr.num_sge = sge_no + 1;
+ req->rl_send_wr.num_sge += sge_no;
return true;
out_mapping_overflow: