Re: [PATCH] lib: dynamic_debug: no need to check return value of debugfs_create functions

From: Jason Baron
Date: Thu Jun 13 2019 - 11:06:31 EST


On 6/12/19 11:35 AM, Greg Kroah-Hartman wrote:
> When calling debugfs functions, there is no need to ever check the
> return value. The function can work or not, but the code logic should
> never do something different based on this.
>
> Cc: Jason Baron <jbaron@xxxxxxxxxx>
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
> lib/dynamic_debug.c | 12 +++---------
> 1 file changed, 3 insertions(+), 9 deletions(-)
>
> diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
> index 8a16c2d498e9..c60409138e13 100644
> --- a/lib/dynamic_debug.c
> +++ b/lib/dynamic_debug.c
> @@ -993,20 +993,14 @@ static __initdata int ddebug_init_success;
>
> static int __init dynamic_debug_init_debugfs(void)
> {
> - struct dentry *dir, *file;
> + struct dentry *dir;
>
> if (!ddebug_init_success)
> return -ENODEV;
>
> dir = debugfs_create_dir("dynamic_debug", NULL);
> - if (!dir)
> - return -ENOMEM;
> - file = debugfs_create_file("control", 0644, dir, NULL,
> - &ddebug_proc_fops);
> - if (!file) {
> - debugfs_remove(dir);
> - return -ENOMEM;
> - }
> + debugfs_create_file("control", 0644, dir, NULL, &ddebug_proc_fops);
> +
> return 0;
> }
>
>

Looks like debugfs_create_dir() can return NULL, and in that case if its
passed to debugfs_create_file() then the 'control' file ends up in the
root of debugfs? I think its better to just not create the file then
have it in the wrong place so maybe the file creation should be guarded
by if(IS_ERR_OR_NULL(dir)).

Thanks,

-Jason