]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/sunrpc/xprtrdma/svc_rdma_sendto.c
svcrdma: Clean up RDMA_ERROR path
[karo-tx-linux.git] / net / sunrpc / xprtrdma / svc_rdma_sendto.c
index ce62b78e5bc92048c3717aeb98c1b5e329ceeff6..0b646e8f23c7f63bf11ae2fd1cac11a2afda908a 100644 (file)
@@ -710,46 +710,3 @@ int svc_rdma_sendto(struct svc_rqst *rqstp)
        set_bit(XPT_CLOSE, &xprt->xpt_flags);
        return -ENOTCONN;
 }
-
-void svc_rdma_send_error(struct svcxprt_rdma *xprt, struct rpcrdma_msg *rmsgp,
-                        int status)
-{
-       struct page *p;
-       struct svc_rdma_op_ctxt *ctxt;
-       enum rpcrdma_errcode err;
-       __be32 *va;
-       int length;
-       int ret;
-
-       ret = svc_rdma_repost_recv(xprt, GFP_KERNEL);
-       if (ret)
-               return;
-
-       p = alloc_page(GFP_KERNEL);
-       if (!p)
-               return;
-       va = page_address(p);
-
-       /* XDR encode an error reply */
-       err = ERR_CHUNK;
-       if (status == -EPROTONOSUPPORT)
-               err = ERR_VERS;
-       length = svc_rdma_xdr_encode_error(xprt, rmsgp, err, va);
-
-       /* Map transport header; no RPC message payload */
-       ctxt = svc_rdma_get_context(xprt);
-       ret = svc_rdma_map_reply_hdr(xprt, ctxt, &rmsgp->rm_xid, length);
-       if (ret) {
-               dprintk("svcrdma: Error %d mapping send for protocol error\n",
-                       ret);
-               return;
-       }
-
-       ret = svc_rdma_post_send_wr(xprt, ctxt, 1, 0);
-       if (ret) {
-               dprintk("svcrdma: Error %d posting send for protocol error\n",
-                       ret);
-               svc_rdma_unmap_dma(ctxt);
-               svc_rdma_put_context(ctxt, 1);
-       }
-}