On Mon, Jan 29, 2018 at 01:07:36PM +0200, Amir Goldstein wrote: > On Fri, Jan 26, 2018 at 11:44 PM, Darrick J. Wong > <darrick.wong@xxxxxxxxxx> wrote: > > On Fri, Jan 26, 2018 at 09:44:29AM +0200, Amir Goldstein wrote: > >> Commit 66f364649d870 ("xfs: remove if_rdev") moved storing of rdev > >> value for special inodes to VFS inodes, but forgot to preserve the > >> value of i_rdev when recycling a reclaimable xfs_inode. > >> > >> This was detected by xfstest overlay/017 with inodex=on mount option > >> and xfs base fs. The test does a lookup of overlay chardev and blockdev > >> right after drop caches. > >> > >> Overlayfs inodes hold a reference on underlying xfs inodes when mount > >> option index=on is configured. If drop caches reclaim xfs inodes, before > >> it relclaims overlayfs inodes, that can sometimes leave a reclaimable xfs > >> inode and that test hits that case quite often. > >> > >> When that happens, the xfs inode cache remains broken (zere i_rdev) > >> until the next cycle mount or drop caches. > >> > >> Fixes: 66f364649d870 ("xfs: remove if_rdev") > >> Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx> > > > > Looks ok, > > Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > > > I recon that now we should now also strap: > Cc: <stable@xxxxxxxxxxxxxxx> #v4.15 > > Can I assume, you'll add it on apply? I'll do a proper backport of this and a couple other critical cow fixes after I get the 4.16 stuff merged. --D > Thanks, > Amir.