xfs
[Top] [All Lists]

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

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [PATCH] xfs_db: modify bad_features2 when modifying features2
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Wed, 02 Dec 2009 09:19:46 -0600
Cc: xfs-oss <xfs@xxxxxxxxxxx>
In-reply-to: <20091202150422.GA16338@xxxxxxxxxxxxx>
References: <4B156BE3.2080107@xxxxxxxxxxx> <20091202150422.GA16338@xxxxxxxxxxxxx>
User-agent: Thunderbird 2.0.0.23 (Macintosh/20090812)
Christoph Hellwig wrote:
> 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.

hm yeah I suppose so.

I wonder if we should catch it somehow on the feature-set shortcuts
like "attr1" but allow it for explicit value sets ...

?

-Eric

> 
>> +
>>      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>