Message ID | 20190122152151.16139-9-gregkh@linuxfoundation.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | zswap: ignore debugfs_create_dir() return value | expand |
On Tue, Jan 22, 2019 at 10:23 AM Greg Kroah-Hartman <gregkh@linuxfoundation.org> 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@redhat.com> > Cc: Dan Streetman <ddstreet@ieee.org> > Cc: linux-mm@kvack.org > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > --- > 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 >
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@linuxfoundation.org> 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@redhat.com> > > Cc: Dan Streetman <ddstreet@ieee.org> > > Cc: linux-mm@kvack.org > > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > --- > > 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@kroah.com/ thanks, greg k-h
On Tue, Jan 29, 2019 at 3:33 PM Greg Kroah-Hartman <gregkh@linuxfoundation.org> 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 > > <gregkh@linuxfoundation.org> 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@redhat.com> > > > Cc: Dan Streetman <ddstreet@ieee.org> > > > Cc: linux-mm@kvack.org > > > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > > --- > > > 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@kroah.com/ Ah! Great, in that case then definitely Acked-by: Dan Streetman <ddstreet@ieee.org> > > thanks, > > greg k-h
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);
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@redhat.com> Cc: Dan Streetman <ddstreet@ieee.org> Cc: linux-mm@kvack.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- mm/zswap.c | 2 -- 1 file changed, 2 deletions(-)