diff mbox

[2/2] ceph: fix memory leak

Message ID CAB2gnbWqq4qDh0qmK8tC1-q5KY2H0rf_fNX_kVcFUEM6ZhYo5w@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Noah Watkins Aug. 22, 2011, 7:49 p.m. UTC
kfree does not clean up indirect allocations in
ceph_fs_client and ceph_options (e.g. snapdir_name).

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
---
 fs/ceph/super.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

Comments

Sage Weil Aug. 22, 2011, 8:19 p.m. UTC | #1
Thanks, applied both of these!

sage

On Mon, 22 Aug 2011, Noah Watkins wrote:

> kfree does not clean up indirect allocations in
> ceph_fs_client and ceph_options (e.g. snapdir_name).
> 
> Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
> ---
>  fs/ceph/super.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/ceph/super.c b/fs/ceph/super.c
> index 733674d..788f5ad 100644
> --- a/fs/ceph/super.c
> +++ b/fs/ceph/super.c
> @@ -824,8 +824,8 @@ static struct dentry *ceph_mount(struct
> file_system_type *fs_type,
>  	fsc = create_fs_client(fsopt, opt);
>  	if (IS_ERR(fsc)) {
>  		res = ERR_CAST(fsc);
> -		kfree(fsopt);
> -		kfree(opt);
> +		destroy_mount_options(fsopt);
> +		ceph_destroy_options(opt);
>  		goto out_final;
>  	}
> 
> -- 
> 1.7.6
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/ceph/super.c b/fs/ceph/super.c
index 733674d..788f5ad 100644
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@ -824,8 +824,8 @@  static struct dentry *ceph_mount(struct
file_system_type *fs_type,
 	fsc = create_fs_client(fsopt, opt);
 	if (IS_ERR(fsc)) {
 		res = ERR_CAST(fsc);
-		kfree(fsopt);
-		kfree(opt);
+		destroy_mount_options(fsopt);
+		ceph_destroy_options(opt);
 		goto out_final;
 	}