]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_repair: write both features2 fields when xfs_admin changes lazy_count
authorEric Sandeen <sandeen@sandeen.net>
Thu, 29 Apr 2010 03:15:26 +0000 (22:15 -0500)
committerEric Sandeen <sandeen@sandeen.net>
Thu, 29 Apr 2010 03:15:26 +0000 (22:15 -0500)
xfs_admin -c invokes repair directly to change lazy_count,
but it doesn't write both features2 fields, so this:

# mkfs.xfs -dfile,name=fsfile,size=10g -llazy-count=0
# xfs_admin -c 1 fsfile
# xfs_repair fsfile

yields errors.

Reported-by: Marcin Mirosław <marcin@mejor.pl>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Dave Chinner <david@fromorbit.com>
repair/phase1.c

index 618796e811b1e6343fba1b6f9ce6e69e7aec3747..dbfbc9b04fdc3a55c9df97831520332144b93732 100644 (file)
@@ -117,11 +117,13 @@ phase1(xfs_mount_t *mp)
                if (lazy_count && !xfs_sb_version_haslazysbcount(sb)) {
                        sb->sb_versionnum |= XFS_SB_VERSION_MOREBITSBIT;
                        sb->sb_features2 |= XFS_SB_VERSION2_LAZYSBCOUNTBIT;
+                       sb->sb_bad_features2 |= XFS_SB_VERSION2_LAZYSBCOUNTBIT;
                        primary_sb_modified = 1;
                        printf(_("Enabling lazy-counters\n"));
                } else
                if (!lazy_count && xfs_sb_version_haslazysbcount(sb)) {
                        sb->sb_features2 &= ~XFS_SB_VERSION2_LAZYSBCOUNTBIT;
+                       sb->sb_bad_features2 &= ~XFS_SB_VERSION2_LAZYSBCOUNTBIT;
                        printf(_("Disabling lazy-counters\n"));
                        primary_sb_modified = 1;
                } else {