ceph: fix a memory leak on cap_auths in MDS client
[ Upstream commitd97079e97e] The cap_auths that are allocated during an MDS session opening are never released, causing a memory leak detected by kmemleak. Fix this by freeing the memory allocated when shutting down the MDS client. Fixes:1d17de9534("ceph: save cap_auths in MDS client when session is opened") Signed-off-by: Luis Henriques (SUSE) <luis.henriques@linux.dev> Reviewed-by: Xiubo Li <xiubli@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
dfeb67b219
commit
1bb86b02bc
@@ -6015,6 +6015,18 @@ static void ceph_mdsc_stop(struct ceph_mds_client *mdsc)
|
||||
ceph_mdsmap_destroy(mdsc->mdsmap);
|
||||
kfree(mdsc->sessions);
|
||||
ceph_caps_finalize(mdsc);
|
||||
|
||||
if (mdsc->s_cap_auths) {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < mdsc->s_cap_auths_num; i++) {
|
||||
kfree(mdsc->s_cap_auths[i].match.gids);
|
||||
kfree(mdsc->s_cap_auths[i].match.path);
|
||||
kfree(mdsc->s_cap_auths[i].match.fs_name);
|
||||
}
|
||||
kfree(mdsc->s_cap_auths);
|
||||
}
|
||||
|
||||
ceph_pool_perm_destroy(mdsc);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user