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

From: Joel Fernandes
Date: Wed Jun 12 2019 - 13:03:02 EST


On Wed, Jun 12, 2019 at 05:35:13PM +0200, 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: Qian Cai <cai@xxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Cc: Waiman Long <longman@xxxxxxxxxx>
> Cc: "Joel Fernandes (Google)" <joel@xxxxxxxxxxxxxxxxx>
> Cc: Zhong Jiang <zhongjiang@xxxxxxxxxx>
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
> lib/debugobjects.c | 14 ++------------
> 1 file changed, 2 insertions(+), 12 deletions(-)
>
> diff --git a/lib/debugobjects.c b/lib/debugobjects.c
> index 55437fd5128b..2ac42286cd08 100644
> --- a/lib/debugobjects.c
> +++ b/lib/debugobjects.c
> @@ -850,26 +850,16 @@ static const struct file_operations debug_stats_fops = {
>
> static int __init debug_objects_init_debugfs(void)
> {
> - struct dentry *dbgdir, *dbgstats;
> + struct dentry *dbgdir;
>
> if (!debug_objects_enabled)
> return 0;
>
> dbgdir = debugfs_create_dir("debug_objects", NULL);
> - if (!dbgdir)
> - return -ENOMEM;
>
> - dbgstats = debugfs_create_file("stats", 0444, dbgdir, NULL,
> - &debug_stats_fops);
> - if (!dbgstats)
> - goto err;
> + debugfs_create_file("stats", 0444, dbgdir, NULL, &debug_stats_fops);


One weirdness is, if dbgdir is ever NULL, then debugfs_create_file() may end
up creating the stats file in the root.

In debugfs_create_file():
/* If the parent is not specified, we create it in the root.
* We need the root dentry to do this, which is in the super
* block. A pointer to that is in the struct vfsmount that we
* have around.
*/
if (!parent)
parent = debugfs_mount->mnt_root;

But I guess that's not a major issue since its debugfs :-) So LGTM,
Reviewed-by: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx>

thanks,

- Joel

>
> return 0;
> -
> -err:
> - debugfs_remove(dbgdir);
> -
> - return -ENOMEM;
> }
> __initcall(debug_objects_init_debugfs);
>
> --
> 2.22.0
>