Skip to content

Commit

Permalink
xprtrdma: The transport should not bug-check when a dup reply is rece…
Browse files Browse the repository at this point in the history
…ived

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: Tom Tucker <tom@ogc.us>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
  • Loading branch information
Tom Tucker authored and Trond Myklebust committed Mar 21, 2012
1 parent 18d98f6 commit 4a6862b
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions net/sunrpc/xprtrdma/rpc_rdma.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down

0 comments on commit 4a6862b

Please sign in to comment.