]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - net/sunrpc/xprtrdma/rpc_rdma.c
xprtrdma: The transport should not bug-check when a dup reply is received
[mirror_ubuntu-artful-kernel.git] / net / sunrpc / xprtrdma / rpc_rdma.c
index 554d0814c8750231472a64e5097132eef7abb55f..12de982b7a505fc1e852606615cb1e427f925be5 100644 (file)
@@ -771,13 +771,18 @@ repost:
 
        /* 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;