aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc
diff options
context:
space:
mode:
authorPavel Emelyanov <xemul@parallels.com>2010-09-29 08:03:13 -0400
committerJ. Bruce Fields <bfields@redhat.com>2010-10-01 17:18:53 -0400
commite204e621b4160c802315bc2d0fa335337c0d62e8 (patch)
treef61889925880484b71ce8b5dbef9a95c3a3b4acb /net/sunrpc
parentbd1722d4316e42a12fe6337ebe34d7e1e2c088b2 (diff)
sunrpc: Factor out rpc_xprt freeing
Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'net/sunrpc')
-rw-r--r--net/sunrpc/xprt.c7
-rw-r--r--net/sunrpc/xprtrdma/transport.c7
-rw-r--r--net/sunrpc/xprtsock.c12
3 files changed, 13 insertions, 13 deletions
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c
index 26cbe219388b..0637340e5342 100644
--- a/net/sunrpc/xprt.c
+++ b/net/sunrpc/xprt.c
@@ -984,6 +984,13 @@ out:
984} 984}
985EXPORT_SYMBOL_GPL(xprt_alloc); 985EXPORT_SYMBOL_GPL(xprt_alloc);
986 986
987void xprt_free(struct rpc_xprt *xprt)
988{
989 kfree(xprt->slot);
990 kfree(xprt);
991}
992EXPORT_SYMBOL_GPL(xprt_free);
993
987/** 994/**
988 * xprt_reserve - allocate an RPC request slot 995 * xprt_reserve - allocate an RPC request slot
989 * @task: RPC task requesting a slot allocation 996 * @task: RPC task requesting a slot allocation
diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c
index 9d77bf25829f..0f7a1b9d05ad 100644
--- a/net/sunrpc/xprtrdma/transport.c
+++ b/net/sunrpc/xprtrdma/transport.c
@@ -251,9 +251,7 @@ xprt_rdma_destroy(struct rpc_xprt *xprt)
251 251
252 xprt_rdma_free_addresses(xprt); 252 xprt_rdma_free_addresses(xprt);
253 253
254 kfree(xprt->slot); 254 xprt_free(xprt);
255 xprt->slot = NULL;
256 kfree(xprt);
257 255
258 dprintk("RPC: %s: returning\n", __func__); 256 dprintk("RPC: %s: returning\n", __func__);
259 257
@@ -401,8 +399,7 @@ out3:
401out2: 399out2:
402 rpcrdma_ia_close(&new_xprt->rx_ia); 400 rpcrdma_ia_close(&new_xprt->rx_ia);
403out1: 401out1:
404 kfree(xprt->slot); 402 xprt_free(xprt);
405 kfree(xprt);
406 return ERR_PTR(rc); 403 return ERR_PTR(rc);
407} 404}
408 405
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index a7a763821b88..b1e36ec6fd80 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -774,8 +774,7 @@ static void xs_destroy(struct rpc_xprt *xprt)
774 774
775 xs_close(xprt); 775 xs_close(xprt);
776 xs_free_peer_addresses(xprt); 776 xs_free_peer_addresses(xprt);
777 kfree(xprt->slot); 777 xprt_free(xprt);
778 kfree(xprt);
779 module_put(THIS_MODULE); 778 module_put(THIS_MODULE);
780} 779}
781 780
@@ -2362,8 +2361,7 @@ static struct rpc_xprt *xs_setup_udp(struct xprt_create *args)
2362 return xprt; 2361 return xprt;
2363 ret = ERR_PTR(-EINVAL); 2362 ret = ERR_PTR(-EINVAL);
2364out_err: 2363out_err:
2365 kfree(xprt->slot); 2364 xprt_free(xprt);
2366 kfree(xprt);
2367 return ret; 2365 return ret;
2368} 2366}
2369 2367
@@ -2438,8 +2436,7 @@ static struct rpc_xprt *xs_setup_tcp(struct xprt_create *args)
2438 return xprt; 2436 return xprt;
2439 ret = ERR_PTR(-EINVAL); 2437 ret = ERR_PTR(-EINVAL);
2440out_err: 2438out_err:
2441 kfree(xprt->slot); 2439 xprt_free(xprt);
2442 kfree(xprt);
2443 return ret; 2440 return ret;
2444} 2441}
2445 2442
@@ -2519,8 +2516,7 @@ static struct rpc_xprt *xs_setup_bc_tcp(struct xprt_create *args)
2519 return xprt; 2516 return xprt;
2520 ret = ERR_PTR(-EINVAL); 2517 ret = ERR_PTR(-EINVAL);
2521out_err: 2518out_err:
2522 kfree(xprt->slot); 2519 xprt_free(xprt);
2523 kfree(xprt);
2524 return ret; 2520 return ret;
2525} 2521}
2526 2522