On Mon, Sep 17, 2018 at 09:41:35PM -0500, Eric Sandeen wrote: > xchk_inode_flags[2]() currently treats any di_flags[2] values that the > running kernel doesn't recognize as corruption, and calls > xchk_ino_set_corrupt() if they are set. However, it's entirely possible > that these flags were set in some newer kernel and are quite valid, > but ignored in this kernel. > > (Validators don't care one bit about unknown di_flags[2].) > > Call xchk_ino_set_warning instead, because this may or may not actually > indicate a problem. > > Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> > --- > > diff --git a/fs/xfs/scrub/inode.c b/fs/xfs/scrub/inode.c > index 5b3b177..e53ed83 100644 > --- a/fs/xfs/scrub/inode.c > +++ b/fs/xfs/scrub/inode.c > @@ -126,8 +126,9 @@ Would be nice to know which function this is, but it otherwise seems fine to me: Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --D > { > struct xfs_mount *mp = sc->mp; > > + /* Unknown di_flags could simply be from newer kernel */ > if (flags & ~XFS_DIFLAG_ANY) > - goto bad; > + xchk_ino_set_warning(sc, ino); > > /* rt flags require rt device */ > if ((flags & (XFS_DIFLAG_REALTIME | XFS_DIFLAG_RTINHERIT)) && > @@ -172,8 +173,9 @@ > { > struct xfs_mount *mp = sc->mp; > > + /* Unknown di_flags2 could simply be from newer kernel */ > if (flags2 & ~XFS_DIFLAG2_ANY) > - goto bad; > + xchk_ino_set_warning(sc, ino); > > /* reflink flag requires reflink feature */ > if ((flags2 & XFS_DIFLAG2_REFLINK) && >