[PATCH v2] ceph: fix memory leak in mount error path when using test_dummy_encryption

From: Luís Henriques
Date: Tue Nov 08 2022 - 09:33:49 EST


Because ceph_init_fs_context() will never be invoced in case we get a
mount error, destroy_mount_options() won't be releasing fscrypt resources
with fscrypt_free_dummy_policy(). This will result in a memory leak. Add
an invocation to this function in the mount error path.

Signed-off-by: Luís Henriques <lhenriques@xxxxxxx>
---
* Changes since v1:

As suggested by Xiubo, moved fscrypt free from ceph_get_tree() to
ceph_real_mount().

(Also used 'git format-patch' with '--base' so that the bots know what to
(not) do with this patch.)

fs/ceph/super.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/fs/ceph/super.c b/fs/ceph/super.c
index 2224d44d21c0..f10a076f47e5 100644
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@ -1196,6 +1196,7 @@ static struct dentry *ceph_real_mount(struct ceph_fs_client *fsc,

out:
mutex_unlock(&fsc->client->mount_mutex);
+ ceph_fscrypt_free_dummy_policy(fsc);
return ERR_PTR(err);
}


base-commit: 8b9ee21dfceadd4cc35a87bbe7f0ad547cffa1be
prerequisite-patch-id: 34ba9e6b37b68668d261ddbda7858ee6f83c82fa
prerequisite-patch-id: 87f1b323c29ab8d0a6d012d30fdc39bc49179624
prerequisite-patch-id: c94f448ef026375b10748457a3aa46070aa7046e