summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKinglong Mee <kinglongmee@gmail.com>2014-03-24 04:58:16 +0100
committerJ. Bruce Fields <bfields@redhat.com>2014-03-30 16:47:35 +0200
commit47f72efa8f32e8182cd4a70d5a9a6d07651093fc (patch)
tree56313bcc33febc6e3e75ed2a65a59505603e2f08
parentNFSD: Clear wcc data between compound ops (diff)
downloadlinux-47f72efa8f32e8182cd4a70d5a9a6d07651093fc.tar.xz
linux-47f72efa8f32e8182cd4a70d5a9a6d07651093fc.zip
NFSD: Free backchannel xprt in bc_destroy
Backchannel xprt isn't freed right now. Free it in bc_destroy, and put the reference of THIS_MODULE. Signed-off-by: Kinglong Mee <kinglongmee@gmail.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
-rw-r--r--net/sunrpc/xprtsock.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index 4b921a926994..63ae657f255b 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -2545,6 +2545,10 @@ static void bc_close(struct rpc_xprt *xprt)
static void bc_destroy(struct rpc_xprt *xprt)
{
+ dprintk("RPC: bc_destroy xprt %p\n", xprt);
+
+ xs_xprt_free(xprt);
+ module_put(THIS_MODULE);
}
static struct rpc_xprt_ops xs_local_ops = {