Re: [PATCH 08/11] xfs: don't emit v5 superblock warnings on write

Dave Chinner
2013-05-23T00:03:43Z

On Wed, May 22, 2013 at 05:26:08PM -0500, Ben Myers wrote:
> On Tue, May 21, 2013 at 06:02:07PM +1000, Dave Chinner wrote:
> > From: Dave Chinner <dchinner@redhat.com>
> >
> > We write the superblock every 30s or so which results in the
> > verifier being called. Right now that results in this output
> > every 30s:
> >
> > XFS (vda): Version 5 superblock detected. This kernel has EXPERIMENTAL support enabled!
> > Use of these features in this kernel is at your own risk!
> >
> > And spamming the logs. Stop this output from occurring on superblock
> > writes.
> >
> > Signed-off-by: Dave Chinner <dchinner@redhat.com>
> > ---
> > fs/xfs/xfs_mount.c | 18 +++++++++++-------
> > 1 file changed, 11 insertions(+), 7 deletions(-)
> >
> > diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
> > index f6bfbd7..e8e310c 100644
> > --- a/fs/xfs/xfs_mount.c
> > +++ b/fs/xfs/xfs_mount.c
> > @@ -314,7 +314,8 @@ STATIC int
> > xfs_mount_validate_sb(
> > xfs_mount_t *mp,
> > xfs_sb_t *sbp,
> > - bool check_inprogress)
> > + bool check_inprogress,
> > + bool check_version)
> > {
> >
> > /*
> > @@ -337,9 +338,10 @@ xfs_mount_validate_sb(
> >
> > /*
> > * Version 5 superblock feature mask validation. Reject combinations the
> > - * kernel cannot support up front before checking anything else.
> > + * kernel cannot support up front before checking anything else. For
> > + * write validation, we don't need to check feature masks.
> > */
> > - if (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5) {
> > + if (check_version && XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5) {
>
> if (!quiet_version) {
> > xfs_alert(mp,
> > "Version 5 superblock detected. This kernel has EXPERIMENTAL support enabled!\n"
> > "Use of these features in this kernel is at your own risk!");
>
> }
>
> Since the stated goal of the patch is to be quieter and not to disable useful
> tests in the verifier, I suggest you disable the print rather than disable the
> test.

Checking the feature fields for whether the kernel supports the
features in them on write is not useful in any way. That's why the
variable is named "check_version" because it skips the v5
version field checking. This is stuff that is used by the mount
path (i.e. superblock read path), not the writeback path.

I'll update the commit message to reflect this.

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com