From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
To: mhocko@kernel.org
Cc: viro@ZenIV.linux.org.uk, david@fromorbit.com, jack@suse.cz,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
akpm@linux-foundation.org
Subject: Re: [PATCH v2] fs: handle shrinker registration failure in sget_userns
Date: Fri, 24 Nov 2017 06:51:09 +0900 [thread overview]
Message-ID: <201711240651.ADG43703.HOSJtFQFMFOOLV@I-love.SAKURA.ne.jp> (raw)
In-Reply-To: <20171123154404.GD21978@ZenIV.linux.org.uk>
Al Viro wrote:
> On Fri, Nov 24, 2017 at 12:35:29AM +0900, Tetsuo Handa wrote:
> > Al Viro wrote:
> > > On Fri, Nov 24, 2017 at 12:04:23AM +0900, Tetsuo Handa wrote:
> > > > Al Viro wrote:
> > > > > On Thu, Nov 23, 2017 at 03:35:37PM +0100, Michal Hocko wrote:
> > > > > > Hopefully less screwed version. But as I've said I am not really
> > > > > > familiar with the code and do not feel competent to change it so please
> > > > > > be very careful here. I've moved the shrinker registration to
> > > > > > alloc_super which turned out to be simpler.
> > > > >
> > > > > I don't get it. Why the hell do we need all that PITA in the first place?
> > > > > Just make sget_userns() end with
> > > > > if (unlikely(regsiter_shrinker(&s->s_shrink) != 0)) {
> > > > > deactivate_locked_super(s);
> > > > > s = ERR_PTR(-ENOMEM);
> > > > > }
> > > > > return s;
> > > > > and be done with that. All there is to it...
> > > > >
> > > >
> > > > Doesn't deactivate_locked_super() call unregister_shrinker() ?
> > >
> > > And? unregister_shrinker() will do list_del() on empty list_head
> > > and kfree(NULL); where's the problem with that?
> > >
> > The problem is that calling unregister_shrinker() without successful
> > register_shrinker() causes crash due to s_shrink.list.{prev,next} == NULL.
>
> *shrug*
> shrinker->nr_deferred = kzalloc(size, GFP_KERNEL);
> if (!shrinker->nr_deferred) {
> /* make sure it's in consistent state */
> INIT_LIST_HEAD(&shrinker->list);
> return -ENOMEM;
> }
>
>
Yes, that will work.
Michal, like Al thinks, making unregister_shrinker() no-op if
register_shrinker() failed simplifies things. Can we go with
http://lkml.kernel.org/r/1511265853-15654-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp
with patch description updated to include Syzbot report?
next prev parent reply other threads:[~2017-11-23 21:51 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-23 11:52 [PATCH] fs: handle shrinker registration failure in sget_userns Michal Hocko
2017-11-23 12:26 ` Jan Kara
2017-11-23 12:45 ` Michal Hocko
2017-11-23 12:53 ` Michal Hocko
2017-11-23 12:56 ` Jan Kara
2017-11-23 13:35 ` Tetsuo Handa
2017-11-23 13:46 ` Michal Hocko
2017-11-23 13:57 ` Tetsuo Handa
2017-11-23 14:06 ` Michal Hocko
2017-11-23 14:10 ` Tetsuo Handa
2017-11-23 14:35 ` [PATCH v2] " Michal Hocko
2017-11-23 14:55 ` Al Viro
2017-11-23 15:02 ` Michal Hocko
2017-11-23 15:34 ` Michal Hocko
2017-11-23 15:04 ` [PATCH v2] fs: handle shrinker registration failure insget_userns Tetsuo Handa
2017-11-23 15:28 ` Al Viro
2017-11-23 15:35 ` [PATCH v2] fs: handle shrinker registration failure in sget_userns Tetsuo Handa
2017-11-23 15:44 ` Al Viro
2017-11-23 21:51 ` Tetsuo Handa [this message]
2017-11-24 7:48 ` Michal Hocko
2017-11-29 11:55 ` Michal Hocko
2017-12-09 20:59 ` Al Viro
2017-12-09 21:54 ` Al Viro
2017-12-10 2:33 ` Tetsuo Handa
2017-12-10 10:05 ` Michal Hocko
2017-12-10 15:21 ` Al Viro
2017-11-23 14:47 ` [PATCH] " Al Viro
2017-11-23 15:00 ` Michal Hocko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201711240651.ADG43703.HOSJtFQFMFOOLV@I-love.SAKURA.ne.jp \
--to=penguin-kernel@i-love.sakura.ne.jp \
--cc=akpm@linux-foundation.org \
--cc=david@fromorbit.com \
--cc=jack@suse.cz \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhocko@kernel.org \
--cc=viro@ZenIV.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.