From: Dave Chinner <david@fromorbit.com>
To: Eric Sandeen <sandeen@redhat.com>
Cc: linux-xfs <linux-xfs@vger.kernel.org>
Subject: Re: [PATCH] xfs: don't treat unknown di_flags[2] as corruption in scrub
Date: Tue, 18 Sep 2018 15:20:09 +1000 [thread overview]
Message-ID: <20180918052009.GG16550@dastard> (raw)
In-Reply-To: <be811b64-5630-e9eb-313f-3aa1f809ba79@redhat.com>
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@redhat.com>
> ---
>
> 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 @@
> {
> 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);
There's only one flag in that set, right? And we only need that flag
for a future v2 inode features we add? i.e. any new feature will be
on a v3 inode format because the v2 format is the legacy inode
format and we're not developing new features for it.
[ There's also the minor issue that the remaining flag bit in
di_flags is reserved for the "more flags" flag bit so that we know
to grab flags from some other padding in the inode we redefined to
hold more flags in the v2 inode format. But that's irrelevant now
because it's a legacy format. ]
IOWs, I think the original code here is just fine because we're not
going to add new v2 format inode features in the future.
>
> /* 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);
This bit it fine, though :)
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
next prev parent reply other threads:[~2018-09-18 10:51 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-18 2:41 [PATCH] xfs: don't treat unknown di_flags[2] as corruption in scrub Eric Sandeen
2018-09-18 3:18 ` Darrick J. Wong
2018-09-18 5:20 ` Dave Chinner [this message]
2018-09-18 12:11 ` Eric Sandeen
2018-09-18 12:18 ` Dave Chinner
2018-09-18 13:50 ` [PATCH V2] xfs: don't treat unknown di_flags2 " Eric Sandeen
2018-09-18 14:15 ` Darrick J. Wong
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=20180918052009.GG16550@dastard \
--to=david@fromorbit.com \
--cc=linux-xfs@vger.kernel.org \
--cc=sandeen@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).