Skip to content

Commit 42fe28f

Browse files
chuckleveramschuma-ntap
authored andcommitted
xprtrdma: Do not leak an MW during a DMA map failure
Based on code audit. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Tested-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
1 parent 505bbe6 commit 42fe28f

File tree

2 files changed

+2
-0
lines changed

2 files changed

+2
-0
lines changed

net/sunrpc/xprtrdma/fmr_ops.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ fmr_op_map(struct rpcrdma_xprt *r_xprt, struct rpcrdma_mr_seg *seg,
257257
out_dmamap_err:
258258
pr_err("rpcrdma: failed to dma map sg %p sg_nents %u\n",
259259
mw->mw_sg, mw->mw_nents);
260+
rpcrdma_defer_mr_recovery(mw);
260261
return -ENOMEM;
261262

262263
out_maperr:

net/sunrpc/xprtrdma/frwr_ops.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,7 @@ frwr_op_map(struct rpcrdma_xprt *r_xprt, struct rpcrdma_mr_seg *seg,
438438
out_dmamap_err:
439439
pr_err("rpcrdma: failed to dma map sg %p sg_nents %u\n",
440440
mw->mw_sg, mw->mw_nents);
441+
rpcrdma_defer_mr_recovery(mw);
441442
return -ENOMEM;
442443

443444
out_mapmr_err:

0 commit comments

Comments
 (0)