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

Commit 4a6862b3 authored by Tom Tucker's avatar Tom Tucker Committed by Trond Myklebust
Browse files

xprtrdma: The transport should not bug-check when a dup reply is received



The client side RDMA transport will bug check if it receives a duplicate
reply, instead we should simply drop the duplicate reply.

Signed-off-by: default avatarTom Tucker <tom@ogc.us>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 18d98f6c
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -771,13 +771,18 @@ rpcrdma_reply_handler(struct rpcrdma_rep *rep)

	/* get request object */
	req = rpcr_to_rdmar(rqst);
	if (req->rl_reply) {
		spin_unlock(&xprt->transport_lock);
		dprintk("RPC:       %s: duplicate reply 0x%p to RPC "
			"request 0x%p: xid 0x%08x\n", __func__, rep, req,
			headerp->rm_xid);
		goto repost;
	}

	dprintk("RPC:       %s: reply 0x%p completes request 0x%p\n"
		"                   RPC request 0x%p xid 0x%08x\n",
			__func__, rep, req, rqst, headerp->rm_xid);

	BUG_ON(!req || req->rl_reply);

	/* from here on, the reply is no longer an orphan */
	req->rl_reply = rep;