diff --git a/e2fsprogs-1.41.4-ignore-NEEDS_RECOVERY-mismatch.patch b/e2fsprogs-1.41.4-ignore-NEEDS_RECOVERY-mismatch.patch new file mode 100644 index 0000000..8ef33e2 --- /dev/null +++ b/e2fsprogs-1.41.4-ignore-NEEDS_RECOVERY-mismatch.patch @@ -0,0 +1,37 @@ +This is for RH bugzilla 471925 - Complete scan of filesystems expanded online + +When we resize online, the primary superblock gets copied to all +the backups, and of course since we're mounted the NEEDS_RECOVERY +flag is set. A subsequent fsck will find the backups have the +NEEDS_RECOVERY flag set while the primary does not, and this +forces a full fsck pass. + +I think this flag can be safely ignored in the flag comparisons. + +Signed-off-by: Eric Sandeen +--- + +Index: e2fsprogs-1.41.4/e2fsck/super.c +=================================================================== +--- e2fsprogs-1.41.4.orig/e2fsck/super.c ++++ e2fsprogs-1.41.4/e2fsck/super.c +@@ -864,7 +864,8 @@ void check_super_block(e2fsck_t ctx) + * try to discourage it in the future. In particular, for the newer + * ext4 files, especially EXT4_FEATURE_RO_COMPAT_DIR_NLINK and + * EXT3_FEATURE_INCOMPAT_EXTENTS. So some of these may go away in the +- * future. ++ * future. EXT3_FEATURE_INCOMPAT_RECOVER may also get set when ++ * copying the primary superblock during online resize. + * + * The kernel will set EXT2_FEATURE_COMPAT_EXT_ATTR, but + * unfortunately, we shouldn't ignore it since if it's not set in the +@@ -877,7 +878,8 @@ void check_super_block(e2fsck_t ctx) + #define FEATURE_COMPAT_IGNORE (EXT2_FEATURE_COMPAT_EXT_ATTR) + #define FEATURE_RO_COMPAT_IGNORE (EXT2_FEATURE_RO_COMPAT_LARGE_FILE| \ + EXT4_FEATURE_RO_COMPAT_DIR_NLINK) +-#define FEATURE_INCOMPAT_IGNORE (EXT3_FEATURE_INCOMPAT_EXTENTS) ++#define FEATURE_INCOMPAT_IGNORE (EXT3_FEATURE_INCOMPAT_EXTENTS| \ ++ EXT3_FEATURE_INCOMPAT_RECOVER) + + int check_backup_super_block(e2fsck_t ctx) + { diff --git a/e2fsprogs.spec b/e2fsprogs.spec index 6b3bccc..22312d0 100644 --- a/e2fsprogs.spec +++ b/e2fsprogs.spec @@ -4,7 +4,7 @@ Summary: Utilities for managing ext2, ext3, and ext4 filesystems Name: e2fsprogs Version: 1.41.4 -Release: 5%{?dist} +Release: 6%{?dist} # License based on upstream-modified COPYING file, # which clearly states "V2" intent. License: GPLv2 @@ -18,6 +18,7 @@ Patch2: e2fsprogs-1.40.4-sb_feature_check_ignore.patch Patch3: e2fsprogs-1.41.4-debugfs-stat-segfault.patch Patch4: e2fsprogs-1.41.4-libext2fs-info.patch Patch5: e2fsprogs-1.41.4-fix-blkid-segfault.patch +Patch6: e2fsprogs-1.41.4-ignore-NEEDS_RECOVERY-mismatch.patch Url: http://e2fsprogs.sourceforge.net/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -101,6 +102,8 @@ SMP systems. %patch4 -p1 -b .info # Fix blkid segfault in modules.dep scanning %patch5 -p1 -b .info +# Ignore NEEDS_RECOVERY mismatch +%patch6 -p1 -b .recovery %build %configure --enable-elf-shlibs --enable-nls --disable-e2initrd-helper --enable-blkid-devmapper --enable-blkid-selinux @@ -299,6 +302,9 @@ fi %dir %attr(2775, uuidd, uuidd) /var/lib/libuuid %changelog +* Sat Apr 11 2009 Eric Sandeen 1.41.4-6 +- ignore differing NEEDS_RECOVERY flag on fsck post-resize (#471925) + * Thu Feb 26 2009 Eric Sandeen 1.41.4-5 - fix a couple missed descriptions; obsolete e4fsprogs