2019-01-22 15:29:30

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH] zswap: ignore debugfs_create_dir() return value

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 <[email protected]>
Cc: Dan Streetman <[email protected]>
Cc: [email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
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);
--
2.20.1



2019-01-29 19:47:59

by Dan Streetman

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

On Tue, Jan 22, 2019 at 10:23 AM Greg Kroah-Hartman
<[email protected]> 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 <[email protected]>
> Cc: Dan Streetman <[email protected]>
> Cc: [email protected]
> Signed-off-by: Greg Kroah-Hartman <[email protected]>
> ---
> 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...

> --
> 2.20.1
>

2019-01-29 20:34:46

by Greg Kroah-Hartman

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

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
> <[email protected]> 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 <[email protected]>
> > Cc: Dan Streetman <[email protected]>
> > Cc: [email protected]
> > Signed-off-by: Greg Kroah-Hartman <[email protected]>
> > ---
> > 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/[email protected]/

thanks,

greg k-h

2019-01-31 16:10:38

by Dan Streetman

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

On Tue, Jan 29, 2019 at 3:33 PM Greg Kroah-Hartman
<[email protected]> wrote:
>
> 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
> > <[email protected]> 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 <[email protected]>
> > > Cc: Dan Streetman <[email protected]>
> > > Cc: [email protected]
> > > Signed-off-by: Greg Kroah-Hartman <[email protected]>
> > > ---
> > > 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/[email protected]/

Ah! Great, in that case then definitely

Acked-by: Dan Streetman <[email protected]>

>
> thanks,
>
> greg k-h