Re: [PATCH] zswap: ignore debugfs_create_dir() return value

From: Greg Kroah-Hartman
Date: Tue Jan 29 2019 - 15:33:31 EST


On Tue, Jan 29, 2019 at 02:46:30PM -0500, Dan Streetman wrote:
> On Tue, Jan 22, 2019 at 10:23 AM Greg Kroah-Hartman
> <gregkh@xxxxxxxxxxxxxxxxxxx> 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: Seth Jennings <sjenning@xxxxxxxxxx>
> > Cc: Dan Streetman <ddstreet@xxxxxxxx>
> > Cc: linux-mm@xxxxxxxxx
> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> > ---
> > mm/zswap.c | 2 --
> > 1 file changed, 2 deletions(-)
> >
> > diff --git a/mm/zswap.c b/mm/zswap.c
> > index a4e4d36ec085..f583d08f6e24 100644
> > --- a/mm/zswap.c
> > +++ b/mm/zswap.c
> > @@ -1262,8 +1262,6 @@ static int __init zswap_debugfs_init(void)
> > return -ENODEV;
> >
> > zswap_debugfs_root = debugfs_create_dir("zswap", NULL);
> > - if (!zswap_debugfs_root)
> > - return -ENOMEM;
> >
> > debugfs_create_u64("pool_limit_hit", 0444,
> > zswap_debugfs_root, &zswap_pool_limit_hit);
>
> wait, so if i'm reading the code right, in the case where
> debugfs_create_dir() returns NULL, that will then be passed along to
> debugfs_create_u64() as its parent directory - and the debugfs nodes
> will then get created in the root debugfs directory. That's not what
> we want to happen...

True, but that is such a rare thing to ever happen (hint, you have to be
out of memory), that it's not really a bad thing. But, you are not the
first to mention this, which is why this patch is on its way to Linus
for 5.0-final:
https://lore.kernel.org/lkml/20190123102814.GB17123@xxxxxxxxx/

thanks,

greg k-h