summaryrefslogtreecommitdiff
path: root/fs/nfsd/nfs4state.c
diff options
context:
space:
mode:
authormajianpeng <majianpeng@gmail.com>2013-01-29 13:16:06 +0800
committerJ. Bruce Fields <bfields@redhat.com>2013-02-05 09:40:47 -0500
commit2d32b29a1c2830f7c42caa8258c714acd983961f (patch)
treebbf4c3bfc2599c0382433d3e4ef55ec926957fc2 /fs/nfsd/nfs4state.c
parentb4e7f2c9450968303d24b48fec9da8abebcc0036 (diff)
downloadlinux-3.10-2d32b29a1c2830f7c42caa8258c714acd983961f.tar.gz
linux-3.10-2d32b29a1c2830f7c42caa8258c714acd983961f.tar.bz2
linux-3.10-2d32b29a1c2830f7c42caa8258c714acd983961f.zip
nfsd: Fix memleak
When free nfs-client, it must free the ->cl_stateids. Cc: stable@kernel.org Signed-off-by: Jianpeng Ma <majianpeng@gmail.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/nfs4state.c')
-rw-r--r--fs/nfsd/nfs4state.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index 4db46aa387b..a6637de7ae1 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -1060,6 +1060,8 @@ free_client(struct nfs4_client *clp)
}
free_svc_cred(&clp->cl_cred);
kfree(clp->cl_name.data);
+ idr_remove_all(&clp->cl_stateids);
+ idr_destroy(&clp->cl_stateids);
kfree(clp);
}