diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2017-10-20 10:47:39 -0400 |
---|---|---|
committer | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2017-11-17 13:47:55 -0500 |
commit | ad99f0530710af72b5bbecda9e770c736e92b328 (patch) | |
tree | 7acfcb6de813452c335813da9eb291e2df2aa75d /net/sunrpc | |
parent | be798f9082aa54524b209fac2c8164c81cd28f77 (diff) | |
download | linux-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.c | 2 |
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: |