Re: [PATCH] mm:vmstat - Removed debug fs entries on failure of filecreation and made extfrag_debug_root dentry local

From: David Rientjes
Date: Mon Apr 23 2012 - 16:35:38 EST


On Tue, 24 Apr 2012, Sasikantha babu wrote:

> diff --git a/mm/vmstat.c b/mm/vmstat.c
> index f600557..ddae476 100644
> --- a/mm/vmstat.c
> +++ b/mm/vmstat.c
> @@ -1220,7 +1220,6 @@ module_init(setup_vmstat)
> #if defined(CONFIG_DEBUG_FS) && defined(CONFIG_COMPACTION)
> #include <linux/debugfs.h>
>
> -static struct dentry *extfrag_debug_root;
>
> /*
> * Return an index indicating how much of the available free memory is
> @@ -1358,17 +1357,23 @@ static const struct file_operations extfrag_file_ops = {
>
> static int __init extfrag_debug_init(void)
> {
> + struct dentry *extfrag_debug_root;
> +
> extfrag_debug_root = debugfs_create_dir("extfrag", NULL);
> if (!extfrag_debug_root)
> return -ENOMEM;
>
> if (!debugfs_create_file("unusable_index", 0444,
> - extfrag_debug_root, NULL, &unusable_file_ops))
> + extfrag_debug_root, NULL, &unusable_file_ops)) {
> + debugfs_remove (extfrag_debug_root);
> return -ENOMEM;
> + }
>
> if (!debugfs_create_file("extfrag_index", 0444,
> - extfrag_debug_root, NULL, &extfrag_file_ops))
> + extfrag_debug_root, NULL, &extfrag_file_ops)) {
> + debugfs_remove_recursive (extfrag_debug_root);
> return -ENOMEM;
> + }
>
> return 0;
> }

Probably easier to do something like "goto fail" and then have a

return 0;

fail:
debugfs_remove_recursive(extfrag_debug_root);
return -ENOMEM;

at the end of the function.

Please run scripts/checkpatch.pl on your patch before proposing it.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/