Re: [PATCH 03/16] vfs: don't evict uninitialized inode

From: Amir Goldstein
Date: Thu Aug 16 2018 - 12:27:32 EST


On Mon, Jul 30, 2018 at 10:41 AM Miklos Szeredi <mszeredi@xxxxxxxxxx> wrote:
>
> On Mon, Jul 30, 2018 at 7:09 AM, Amir Goldstein <amir73il@xxxxxxxxx> wrote:
> > On Mon, Jul 30, 2018 at 1:04 AM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
> >> From: Miklos Szeredi <mszeredi@xxxxxxxxxx>
> >>
> >> iput() ends up calling ->evict() on new inode, which is not yet initialized
> >> by owning fs. So use destroy_inode() instead.
> >>
> >> Add to sb->s_inodes list only if inode is not in I_CREATING state (meaning
> >> that it wasn't allocated with new_inode(), which already does the
> >> insertion).
> >>
> >> Reported-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
> >> Signed-off-by: Miklos Szeredi <mszeredi@xxxxxxxxxx>
> >> Fixes: 80ea09a002bf ("vfs: factor out inode_insert5()")
> >
> > Backport hint: this patch depends on the patch ("new primitive:
> > discard_new_inode()") currently commit 22dc9a168272 in Al's for-next.
> >
> > Still trying to figure out the best format to channel this information to
> > stable maintainers...
>
> Why are we talking about stable? This regression was introduced in
> 4.18-rc1, spotted by Al *and* reported by testers. It needs to be
> fixed in one way or other in 4.18.
>

Miklos,

Seeing that it wasn't fixed in 4.18..

> I've nothing against applying "new primitive: discard_new_inode() now
> + this patch, but if it is deemed too risky at this point, we could
> just revert the buggy commit 80ea09a002bf ("vfs: factor out
> inode_insert5()") and its dependencies.
>

Should we propose for stable the upstream commits:
e950564b97fd vfs: don't evict uninitialized inode
c2b6d621c4ff new primitive: discard_new_inode()

Or should we go with the independent v1 patch:
https://patchwork.kernel.org/patch/10511969/

Thanks,
Amir.