xfs
[Top] [All Lists]

Re: [REVIEW] User-space support for bad_features2 patch

To: Barry Naujok <bnaujok@xxxxxxx>
Subject: Re: [REVIEW] User-space support for bad_features2 patch
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Fri, 22 Feb 2008 11:41:55 -0600
Cc: "xfs@xxxxxxxxxxx" <xfs@xxxxxxxxxxx>
In-reply-to: <op.t6w1h5f53jf8g2@pc-bnaujok.melbourne.sgi.com>
References: <op.t6w1h5f53jf8g2@pc-bnaujok.melbourne.sgi.com>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Thunderbird 2.0.0.9 (X11/20071115)
Barry Naujok wrote:
> The attached patch fixes mkfs.xfs writing the bad features2 in the first  
> place (the change to xfs_sb.h does this).
> 
> Next xfs_db support printing of this superblock field and xfs_check can  
> report the bad_features2 field is set.
> 
> xfs_repair can correct the error in the same fashion that David Chinner's  
> mount code does it.
> 
> This patch applies to the lazy-count xfs_repair conversion code that I  
> posted a short time before this patch.
> 
> Barry.
> 
+        * Check bad_features2, if set and features2 is zero, copy
+        * bad_features2 to features2 and zero bad_features2.
+        */
+       if (sb->sb_bad_features2 != 0) {
+               if (sb->sb_features2 == 0)
+                       sb->sb_features2 = sb->sb_bad_features2;
+               sb->sb_bad_features2 = 0;
+               primary_sb_modified = 1;
+               do_warn(_("superblock's features2 field is in the wrong "
+                       "location, correcting\n"));
+       }

My only thought here is that if you repair it, then use an older kernel
w/o the fix, suddenly your fs behavior changes, whereas before you often
got lucky, and both userspace & kernelspace swapped the same way, and
you found the bits you were looking for out of luck :)  (same goes for
the recent kernel fix too, I guess)

Should we flag the bad_features2 as "already copied to features2" but
otherwise leave it?  Hmm I guess that would look like an unsupported
feature flag to old kernels, wouldn't it.  Urgh.

-Eric


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