svcrdma: Remove try_module_get from backchannel
authorChuck Lever <chuck.lever@oracle.com>
Mon, 1 Oct 2018 18:16:06 +0000 (14:16 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Mon, 29 Oct 2018 20:58:04 +0000 (16:58 -0400)
Since commit ffe1f0df5862 ("rpcrdma: Merge svcrdma and xprtrdma
modules into one"), the forward and backchannel components are part
of the same kernel module. A separate try_module_get() call in the
backchannel code is no longer necessary.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/xprtrdma/svc_rdma_backchannel.c

index 642f0310cc1659cb3677b0045a3604d825b83f58..7e188bc793a200eb2be359232ff93c7ea35bd223 100644 (file)
@@ -5,8 +5,6 @@
  * Support for backward direction RPCs on RPC/RDMA (server-side).
  */
 
-#include <linux/module.h>
-
 #include <linux/sunrpc/svc_rdma.h>
 
 #include "xprt_rdma.h"
@@ -255,7 +253,6 @@ xprt_rdma_bc_put(struct rpc_xprt *xprt)
        dprintk("svcrdma: %s: xprt %p\n", __func__, xprt);
 
        xprt_free(xprt);
-       module_put(THIS_MODULE);
 }
 
 static const struct rpc_xprt_ops xprt_rdma_bc_procs = {
@@ -327,20 +324,9 @@ xprt_setup_rdma_bc(struct xprt_create *args)
        args->bc_xprt->xpt_bc_xprt = xprt;
        xprt->bc_xprt = args->bc_xprt;
 
-       if (!try_module_get(THIS_MODULE))
-               goto out_fail;
-
        /* Final put for backchannel xprt is in __svc_rdma_free */
        xprt_get(xprt);
        return xprt;
-
-out_fail:
-       xprt_rdma_free_addresses(xprt);
-       args->bc_xprt->xpt_bc_xprt = NULL;
-       args->bc_xprt->xpt_bc_xps = NULL;
-       xprt_put(xprt);
-       xprt_free(xprt);
-       return ERR_PTR(-EINVAL);
 }
 
 struct xprt_class xprt_rdma_bc = {