xfs
[Top] [All Lists]

Re: [PATCH] xfs_db: modify bad_features2 when modifying features2

To: Eric Sandeen <sandeen@xxxxxxxxxxx>
Subject: Re: [PATCH] xfs_db: modify bad_features2 when modifying features2
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Wed, 2 Dec 2009 10:04:23 -0500
Cc: xfs-oss <xfs@xxxxxxxxxxx>
In-reply-to: <4B156BE3.2080107@xxxxxxxxxxx>
References: <4B156BE3.2080107@xxxxxxxxxxx>
User-agent: Mutt/1.5.19 (2009-01-05)
On Tue, Dec 01, 2009 at 01:17:55PM -0600, Eric Sandeen wrote:
> +     if (xfs_sb_has_mismatched_features2(&tsb)) {
> +             dbprintf(_("Superblock has mismatched features2 fields, "
> +                        "skipping modification\n"));
> +             return 0;
> +     }

However I'm not sure if this one is an all that good idea.  It'll make
all version updates fail if we have a mismatched features2.  That way
people can't use xfs_db to fix it up which seems odd.

To me just printing the warning but not aborting would be the best way
to inform the user about it.

> +
>       if ((version & XFS_SB_VERSION_LOGV2BIT) &&
>                                       !xfs_sb_version_haslogv2(&tsb)) {
>               tsb.sb_logsunit = 1;
> @@ -564,7 +570,8 @@ do_version(xfs_agnumber_t agno, __uint16_t version, 
> __uint32_t features)
>  
>       tsb.sb_versionnum = version;
>       tsb.sb_features2 = features;
> -     fields |= XFS_SB_VERSIONNUM | XFS_SB_FEATURES2;
> +     tsb.sb_bad_features2 = features;
> +     fields |= XFS_SB_VERSIONNUM | XFS_SB_FEATURES2 | XFS_SB_BAD_FEATURES2;

This one looks good to me.

<Prev in Thread] Current Thread [Next in Thread>