Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

xprtrdma: On invalidation failure, remove MWs from rl_registered



Callers assume the ro_unmap_sync and ro_unmap_safe methods empty
the list of registered MRs. Ensure that all paths through
fmr_op_unmap_sync() remove MWs from that list.

Fixes: 9d6b0409 ("xprtrdma: Place registered MWs on a ... ")
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
parent 26fde4df
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -295,6 +295,7 @@ fmr_op_unmap_sync(struct rpcrdma_xprt *r_xprt, struct rpcrdma_req *req)
	pr_err("rpcrdma: ib_unmap_fmr failed (%i)\n", rc);

	list_for_each_entry_safe(mw, tmp, &req->rl_registered, mw_list) {
		list_del_init(&mw->mw_list);
		list_del_init(&mw->fmr.fm_mr->list);
		fmr_op_recover_mr(mw);
	}