Re: [PATCH v2] fs: handle shrinker registration failure in sget_userns

From: Michal Hocko
Date: Sun Dec 10 2017 - 05:05:28 EST


On Sun 10-12-17 11:33:18, Tetsuo Handa wrote:
> Al Viro wrote:
> > On Sat, Dec 09, 2017 at 08:59:22PM +0000, Al Viro wrote:
> > > On Wed, Nov 29, 2017 at 12:55:15PM +0100, Michal Hocko wrote:
> > > > On Thu 23-11-17 14:55:40, 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...
> > > >
> > > > Al, do you plan to push this fix? Tetsuo's unregister_shrinker
> > > > fortification is already in the mmotm tree.
> > >
> > > Is it in any git branch I could pull from? Or I could just throw it
> > > into vfs.git#for-linus before the fix above - up to you, folks...
> >
> > Actually, looking at mmotm... I don't see it there. Which patch
> > is it in?
> >
>
> My unregister_shrinker() fortification patch
> ( http://lkml.kernel.org/r/1511523385-6433-1-git-send-email-penguin-kernel@xxxxxxxxxxxxxxxxxxx )
> is not yet in the mmotm tree due to disagreement between Michal and I, but
> you can throw your sget_userns() patch into vfs.git#for-linus anyway.
> We will eventually apply unregister_shrinker() fortification patch.

I've acked the patch http://lkml.kernel.org/r/20171124122148.qevmiogh3pzr4zix@xxxxxxxxxxxxxx
I disagreed with your must_check patch which has nothing to do with the
patch disussed here. I've also suggested some changelog clarifications.
Please repost and I am pretty sure Andew will pick it up.

--
Michal Hocko
SUSE Labs