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