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

From: Michal Hocko
Date: Tue Jan 22 2019 - 10:31:06 EST


On Tue 22-01-19 16:21:13, Greg KH wrote:
[...]
> diff --git a/mm/memblock.c b/mm/memblock.c
> index 022d4cbb3618..18ee657fb918 100644
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@ -1998,8 +1998,7 @@ DEFINE_SHOW_ATTRIBUTE(memblock_debug);
> static int __init memblock_init_debugfs(void)
> {
> struct dentry *root = debugfs_create_dir("memblock", NULL);
> - if (!root)
> - return -ENXIO;
> +
> debugfs_create_file("memory", 0444, root,
> &memblock.memory, &memblock_debug_fops);
> debugfs_create_file("reserved", 0444, root,

I haven't really read the whole patch but this has just hit my eyes. Is
this a correct behavior?

Documentations says:
* @parent: a pointer to the parent dentry for this file. This should be a
* directory dentry if set. If this parameter is NULL, then the
* file will be created in the root of the debugfs filesystem.

so in case of failure we would get those debugfs files outside of their
intended scope. I believe it is much more correct to simply not create
anything, no?
--
Michal Hocko
SUSE Labs