Commit ad99f053 authored by Chuck Lever's avatar Chuck Lever Committed by Anna Schumaker
Browse files

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: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
parent be798f90
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -637,7 +637,7 @@ map_tail:
	}
	}


out:
out:
	req->rl_send_wr.num_sge = sge_no + 1;
	req->rl_send_wr.num_sge += sge_no;
	return true;
	return true;


out_mapping_overflow:
out_mapping_overflow: