[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190122162503.GB22548@kroah.com>
Date: Tue, 22 Jan 2019 17:25:03 +0100
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
Cc: linux-kernel@...r.kernel.org,
Andrew Morton <akpm@...ux-foundation.org>,
Anders Roxell <anders.roxell@...aro.org>,
Arnd Bergmann <arnd@...db.de>, Michal Hocko <mhocko@...e.com>,
linux-mm@...ck.org
Subject: Re: [PATCH] backing-dev: no need to check return value of
debugfs_create functions
On Tue, Jan 22, 2019 at 05:07:59PM +0100, Sebastian Andrzej Siewior wrote:
> On 2019-01-22 16:21:07 [+0100], Greg Kroah-Hartman wrote:
> > diff --git a/mm/backing-dev.c b/mm/backing-dev.c
> > index 8a8bb8796c6c..85ef344a9c67 100644
> > --- a/mm/backing-dev.c
> > +++ b/mm/backing-dev.c
> > @@ -102,39 +102,25 @@ static int bdi_debug_stats_show(struct seq_file *m, void *v)
> > }
> > DEFINE_SHOW_ATTRIBUTE(bdi_debug_stats);
> >
> > -static int bdi_debug_register(struct backing_dev_info *bdi, const char *name)
> > +static void bdi_debug_register(struct backing_dev_info *bdi, const char *name)
> > {
> > - if (!bdi_debug_root)
> > - return -ENOMEM;
> > -
> > bdi->debug_dir = debugfs_create_dir(name, bdi_debug_root);
>
> If this fails then ->debug_dir is NULL
Wonderful, who cares :)
> > - if (!bdi->debug_dir)
> > - return -ENOMEM;
> > -
> > - bdi->debug_stats = debugfs_create_file("stats", 0444, bdi->debug_dir,
> > - bdi, &bdi_debug_stats_fops);
> > - if (!bdi->debug_stats) {
> > - debugfs_remove(bdi->debug_dir);
> > - bdi->debug_dir = NULL;
> > - return -ENOMEM;
> > - }
> >
> > - return 0;
> > + debugfs_create_file("stats", 0444, bdi->debug_dir, bdi,
> > + &bdi_debug_stats_fops);
>
> then this creates the stats file in the root folder and
True.
> > }
> >
> > static void bdi_debug_unregister(struct backing_dev_info *bdi)
> > {
> > - debugfs_remove(bdi->debug_stats);
> > - debugfs_remove(bdi->debug_dir);
> > + debugfs_remove_recursive(bdi->debug_dir);
>
> this won't remove it.
Which is fine, you don't care.
But step back, how could that original call be NULL? That only happens
if you pass it a bad parent dentry (which you didn't), or the system is
totally out of memory (in which case you don't care as everything else
is on fire).
> If you return for "debug_dir == NULL" then it is a nice cleanup.
No, that's not a valid thing to check for, you should not care as it
will not happen. And if it does happen, it's ok, it's only debugfs, no
one can rely on it, it is only for debugging.
thanks,
greg k-h
Powered by blists - more mailing lists