Skip to content

Commit

Permalink
xfs: don't emit v5 superblock warnings on write
Browse files Browse the repository at this point in the history
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.

We don't need to check for whether we support v5 superblocks or
whether there are feature bits we don't support set as these are
only relevant when we first mount the filesytem. i.e. on superblock
read. Hence for the write verification we can just skip all the
checks (and hence verbose output) altogether.

Signed-off-by: Dave Chinner <[email protected]>
Reviewed-by: Brian Foster <[email protected]>
Signed-off-by: Ben Myers <[email protected]>

(cherry picked from commit 3451018)
  • Loading branch information
Dave Chinner authored and Ben Myers committed Jun 14, 2013
1 parent 0a8aa19 commit 47ad2fc
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions fs/xfs/xfs_mount.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{

/*
Expand All @@ -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) {
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!");
Expand Down Expand Up @@ -675,7 +677,8 @@ xfs_sb_to_disk(

static int
xfs_sb_verify(
struct xfs_buf *bp)
struct xfs_buf *bp,
bool check_version)
{
struct xfs_mount *mp = bp->b_target->bt_mount;
struct xfs_sb sb;
Expand All @@ -686,7 +689,8 @@ xfs_sb_verify(
* Only check the in progress field for the primary superblock as
* mkfs.xfs doesn't clear it from secondary superblocks.
*/
return xfs_mount_validate_sb(mp, &sb, bp->b_bn == XFS_SB_DADDR);
return xfs_mount_validate_sb(mp, &sb, bp->b_bn == XFS_SB_DADDR,
check_version);
}

/*
Expand Down Expand Up @@ -719,7 +723,7 @@ xfs_sb_read_verify(
goto out_error;
}
}
error = xfs_sb_verify(bp);
error = xfs_sb_verify(bp, true);

out_error:
if (error) {
Expand Down Expand Up @@ -758,7 +762,7 @@ xfs_sb_write_verify(
struct xfs_buf_log_item *bip = bp->b_fspriv;
int error;

error = xfs_sb_verify(bp);
error = xfs_sb_verify(bp, false);
if (error) {
XFS_CORRUPTION_ERROR(__func__, XFS_ERRLEVEL_LOW, mp, bp->b_addr);
xfs_buf_ioerror(bp, error);
Expand Down

0 comments on commit 47ad2fc

Please sign in to comment.