btrfs: fix leaks during sysfs teardown
authorJeff Mahoney <[email protected]>
Thu, 21 Nov 2013 15:37:16 +0000 (10:37 -0500)
committerChris Mason <[email protected]>
Tue, 28 Jan 2014 21:19:45 +0000 (13:19 -0800)
commite453d989e0bb33defaaa5be4e9f577cea946e2a6
treef285b20b15933459db0b13282042acf3b0569dbf
parent1b8e5df6d9b676f6d31fb098ffdc7d18732729d7
btrfs: fix leaks during sysfs teardown

Filipe noticed that we were leaking the features attribute group
after umount. His fix of just calling sysfs_remove_group() wasn't enough
since that removes just the supported features and not the unsupported
features.

This patch changes the unknown feature handling to add them individually
so we can skip the kmalloc and uses the same iteration to tear them down
later.

We also fix the error handling during mount so that we catch the
failing creation of the per-super kobject, and handle proper teardown
of a half-setup sysfs context.

Tested properly with kmemleak enabled this time.

Reported-by: Filipe David Borba Manana <[email protected]>
Signed-off-by: Jeff Mahoney <[email protected]>
Tested-by: Filipe David Borba Manana <[email protected]>
Signed-off-by: Josef Bacik <[email protected]>
Signed-off-by: Chris Mason <[email protected]>
fs/btrfs/sysfs.c