mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
ceph: fix a memory leak on cap_auths in MDS client
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>
This commit is contained in:
committed by
Ilya Dryomov
parent
adc5246176
commit
d97079e97e
@@ -6016,6 +6016,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