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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]