diff --git a/e2fsprogs-1.40.7-swap-inode-full-fix.patch b/e2fsprogs-1.40.7-swap-inode-full-fix.patch new file mode 100644 index 0000000..0e3c55f --- /dev/null +++ b/e2fsprogs-1.40.7-swap-inode-full-fix.patch @@ -0,0 +1,36 @@ +Index: e2fsprogs-1.40.7/lib/ext2fs/swapfs.c +=================================================================== +--- e2fsprogs-1.40.7.orig/lib/ext2fs/swapfs.c ++++ e2fsprogs-1.40.7/lib/ext2fs/swapfs.c +@@ -133,7 +133,7 @@ void ext2fs_swap_inode_full(ext2_filsys + struct ext2_inode_large *f, int hostorder, + int bufsize) + { +- unsigned i, has_data_blocks, extra_isize; ++ unsigned i, has_data_blocks, extra_isize, attr_magic; + int islnk = 0; + __u32 *eaf, *eat; + +@@ -231,13 +231,17 @@ void ext2fs_swap_inode_full(ext2_filsys + + eaf = (__u32 *) (((char *) f) + sizeof(struct ext2_inode) + + extra_isize); +- +- if (ext2fs_swab32(*eaf) != EXT2_EXT_ATTR_MAGIC) +- return; /* it seems no magic here */ +- + eat = (__u32 *) (((char *) t) + sizeof(struct ext2_inode) + + extra_isize); ++ ++ if (hostorder) ++ attr_magic = *eaf; + *eat = ext2fs_swab32(*eaf); ++ if (!hostorder) ++ attr_magic = *eat; ++ ++ if (attr_magic != EXT2_EXT_ATTR_MAGIC) ++ return; /* it seems no magic here */ + + /* convert EA(s) */ + ext2fs_swap_ext_attr((char *) (eat + 1), (char *) (eaf + 1), + diff --git a/e2fsprogs.spec b/e2fsprogs.spec index 47bac63..287694f 100644 --- a/e2fsprogs.spec +++ b/e2fsprogs.spec @@ -15,6 +15,7 @@ Source2: blkid_types-wrapper.h Source3: uuidd.init Patch1: e2fsprogs-1.38-etcblkid.patch Patch2: e2fsprogs-1.40.4-sb_feature_check_ignore.patch +Patch3: e2fsprogs-1.40.7-swap-inode-full-fix.patch Url: http://e2fsprogs.sourceforge.net/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -91,6 +92,8 @@ SMP systems. # mildly unsafe but 'til I get something better, avoid full fsck # after an selinux install... %patch2 -p1 -b .featurecheck +# fix in-inode ea swapping in swap_inode_full +%patch3 -p1 -b .swapinode %build %configure --enable-elf-shlibs --enable-nls --disable-e2initrd-helper --enable-blkid-devmapper --enable-blkid-selinux @@ -281,6 +284,7 @@ fi * Fri Feb 29 2008 Eric Sandeen 1.40.7-1 - New upstream version, special leap-day edition - Fix resize2fs losing inline xattrs when shrinking (#434893) + and add patch to fix swap_inode_full in this case - Allow mke2fs & tune2fs to manipulate large_file feature (#258381) - Handle lvm error conditions in libblkid (#433857) - Allow tune2fs to clear the resize_inode feature (#167816)