rpms/e2fsprogs/F-11 e4fsprogs-1.41.9-s_jnl_blocks-swap.patch, NONE, 1.1 e2fsprogs.spec, 1.138, 1.139

Eric Sandeen sandeen at fedoraproject.org
Sun Jan 24 03:12:14 UTC 2010


Author: sandeen

Update of /cvs/pkgs/rpms/e2fsprogs/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv2001

Modified Files:
	e2fsprogs.spec 
Added Files:
	e4fsprogs-1.41.9-s_jnl_blocks-swap.patch 
Log Message:
* Sat Jan 23  2010 Eric Sandeen <sandeen at redhat.com> 1.41.9-2
- Fix make check for ppc


e4fsprogs-1.41.9-s_jnl_blocks-swap.patch:
 swapfs.c |   13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

--- NEW FILE e4fsprogs-1.41.9-s_jnl_blocks-swap.patch ---
libext2fs: don't swap extent-based journal backup on read

The f_illitable_flexbg test was failing on ppc, because
e2fsck_move_ext3_journal is doing a direct memcmp of i_block with 
s_jnl_blocks, and failing.

This is because we don't swap extent data on read from disk; rather
we do it when we access the extents.  However, ext2fs_swap_super
was swapping s_jnl_blocks unconditionally, so these didn't match.

Looks like we need to treat s_jnl_blocks the same as i_block, and
swap it on access, not on read.  Except for the last i_size bit...

Signed-off-by: Eric Sandeen <sandeen at redhat.com>
---

diff --git a/lib/ext2fs/swapfs.c b/lib/ext2fs/swapfs.c
index 42bc01e..38f5f9b 100644
--- a/lib/ext2fs/swapfs.c
+++ b/lib/ext2fs/swapfs.c
@@ -73,9 +73,19 @@ void ext2fs_swap_super(struct ext2_super_block * sb)
 	sb->s_kbytes_written = ext2fs_swab64(sb->s_kbytes_written);
 	for (i=0; i < 4; i++)
 		sb->s_hash_seed[i] = ext2fs_swab32(sb->s_hash_seed[i]);
+
+	/* if journal backup is for a valid extent-based journal... */
+	if (!ext2fs_extent_header_verify(sb->s_jnl_blocks,
+					 sizeof(sb->s_jnl_blocks))) {
+		/* ... swap only the journal i_size */
+		sb->s_jnl_blocks[16] = ext2fs_swab32(sb->s_jnl_blocks[16]);
+		/* and the extent data is not swapped on read */
+		return;
+	}
+
+	/* direct/indirect journal: swap it all */
 	for (i=0; i < 17; i++)
 		sb->s_jnl_blocks[i] = ext2fs_swab32(sb->s_jnl_blocks[i]);
-
 }
 
 void ext2fs_swap_group_desc(struct ext2_group_desc *gdp)


--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Index: e2fsprogs.spec
===================================================================
RCS file: /cvs/pkgs/rpms/e2fsprogs/F-11/e2fsprogs.spec,v
retrieving revision 1.138
retrieving revision 1.139
diff -u -p -r1.138 -r1.139
--- e2fsprogs.spec	23 Jan 2010 04:37:28 -0000	1.138
+++ e2fsprogs.spec	24 Jan 2010 03:12:13 -0000	1.139
@@ -4,7 +4,7 @@
 Summary: Utilities for managing ext2, ext3, and ext4 filesystems
 Name: e2fsprogs
 Version: 1.41.9
-Release: 1%{?dist}
+Release: 2%{?dist}
 # License tags based on COPYING file distinctions for various components
 License: GPLv2
 Group: System Environment/Base
@@ -18,6 +18,7 @@ Patch2: e2fsprogs-1.40.4-sb_feature_chec
 # These are all upstream, or headed there.
 Patch3: e2fsprogs-resize-minimum-fix.patch
 Patch4: e2fsprogs-1.41.9-24hr-fsck-grace.patch
+Patch5: e4fsprogs-1.41.9-s_jnl_blocks-swap.patch
 
 Url: http://e2fsprogs.sourceforge.net/
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -97,6 +98,7 @@ SMP systems.
 %patch2 -p1 -b .featurecheck
 %patch3 -p1 -b .resize
 %patch4 -p1 -b .24hr
+%patch5 -p1 -b .journalswap
 
 %build
 %configure --enable-elf-shlibs --enable-nls --disable-e2initrd-helper  --enable-blkid-devmapper --enable-blkid-selinux
@@ -297,6 +299,9 @@ fi
 %dir %attr(2775, uuidd, uuidd) /var/lib/libuuid
 
 %changelog
+* Sat Jan 23  2010 Eric Sandeen <sandeen at redhat.com> 1.41.9-2
+- Fix make check for ppc
+
 * Fri Jan 22 2010 Eric Sandeen <sandeen at redhat.com> 1.41.9-1
 - Update to current upstream
 



More information about the scm-commits mailing list