Re: [PATCH] backing-dev: no need to check return value of debugfs_create functions

Sebastian Andrzej Siewior
2019-01-22T16:08:08Z

On 2019-01-22 16:21:07 [+0100], Greg Kroah-Hartman wrote:
> diff --git a/mm/backing-dev.c b/mm/backing-dev.c
> index 8a8bb8796c6c..85ef344a9c67 100644
> --- a/mm/backing-dev.c
> +++ b/mm/backing-dev.c
> @@ -102,39 +102,25 @@ static int bdi_debug_stats_show(struct seq_file *m, void *v)
> }
> DEFINE_SHOW_ATTRIBUTE(bdi_debug_stats);
>
> -static int bdi_debug_register(struct backing_dev_info *bdi, const char *name)
> +static void bdi_debug_register(struct backing_dev_info *bdi, const char *name)
> {
> - if (!bdi_debug_root)
> - return -ENOMEM;
> -
> bdi->debug_dir = debugfs_create_dir(name, bdi_debug_root);

If this fails then ->debug_dir is NULL

> - if (!bdi->debug_dir)
> - return -ENOMEM;
> -
> - bdi->debug_stats = debugfs_create_file("stats", 0444, bdi->debug_dir,
> - bdi, &bdi_debug_stats_fops);
> - if (!bdi->debug_stats) {
> - debugfs_remove(bdi->debug_dir);
> - bdi->debug_dir = NULL;
> - return -ENOMEM;
> - }
>
> - return 0;
> + debugfs_create_file("stats", 0444, bdi->debug_dir, bdi,
> + &bdi_debug_stats_fops);

then this creates the stats file in the root folder and

> }
>
> static void bdi_debug_unregister(struct backing_dev_info *bdi)
> {
> - debugfs_remove(bdi->debug_stats);
> - debugfs_remove(bdi->debug_dir);
> + debugfs_remove_recursive(bdi->debug_dir);

this won't remove it.

If you return for "debug_dir == NULL" then it is a nice cleanup.

Sebastian