diff --git a/.gitignore b/.gitignore index 5d705bc..56ef476 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ e2fsprogs-1.41.12.tar.gz /e2fsprogs-1.42-WIP-0925.tar.gz /e2fsprogs-1.42-WIP-1009.tar.gz /e2fsprogs-1.42-WIP-1016.tar.gz +/e2fsprogs-1.42-WIP-1120.tar.gz diff --git a/e2fsprogs-1.42-bigendian-fix.patch b/e2fsprogs-1.42-bigendian-fix.patch deleted file mode 100644 index b873d09..0000000 --- a/e2fsprogs-1.42-bigendian-fix.patch +++ /dev/null @@ -1,319 +0,0 @@ -Without this change, we go back to getting group descriptor -"0" each time we go around the "for i" loop. It must properly -advance through the filesystem. - -Signed-off-by: Eric Sandeen ---- - -(I couldn't decipher the removed comment; maybe it was typed when -you thought you would do: - - gdp = ext2fs_group_desc(fs, dest, j); - -which would also work ... ? It'd be clever, but I think my change -is more explicitly obvious. Either way works. - -We still have failing tests but at least nothing hangs now: -Tests failed: f_mmp f_mmp_garbage m_mmp t_mmp_1on t_mmp_2off - - -diff --git a/lib/ext2fs/openfs.c b/lib/ext2fs/openfs.c -index 0cefe3f..40a52c5 100644 ---- a/lib/ext2fs/openfs.c -+++ b/lib/ext2fs/openfs.c -@@ -356,8 +356,8 @@ errcode_t ext2fs_open2(const char *name, const char *io_options, - goto cleanup; - #ifdef WORDS_BIGENDIAN - for (j=0; j < groups_per_block; j++) { -- /* The below happens to work... be careful. */ -- gdp = ext2fs_group_desc(fs, fs->group_desc, j); -+ gdp = ext2fs_group_desc(fs, fs->group_desc, -+ i * groups_per_block + j); - ext2fs_swap_group_desc2(fs, gdp); - } - #endif -diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c -index eba3b69..1fb8f44 100644 ---- a/debugfs/debugfs.c -+++ b/debugfs/debugfs.c -@@ -2165,11 +2165,15 @@ void do_punch(int argc, char *argv[]) - - void do_dump_mmp(int argc, char *argv[]) - { -- struct ext2_super_block *sb = current_fs->super; -+ struct ext2_super_block *sb; - struct mmp_struct *mmp_s; - time_t t; - errcode_t retval = 0; - -+ if (check_fs_open(argv[0])) -+ return; -+ -+ sb = current_fs->super; - if (sb->s_mmp_block <= sb->s_first_data_block || - sb->s_mmp_block >= ext2fs_blocks_count(sb)) { - com_err(argv[0], EXT2_ET_MMP_BAD_BLOCK, "while dumping it.\n"); -@@ -2203,6 +2207,7 @@ void do_dump_mmp(int argc, char *argv[]) - fprintf(stdout, "time: %lld -- %s", mmp_s->mmp_time, ctime(&t)); - fprintf(stdout, "node_name: %s\n", mmp_s->mmp_nodename); - fprintf(stdout, "device_name: %s\n", mmp_s->mmp_bdevname); -+ fprintf(stdout, "magic: 0x%x\n", mmp_s->mmp_magic); - } - - static int source_file(const char *cmd_file, int sci_idx) -diff --git a/debugfs/set_fields.c b/debugfs/set_fields.c -index d461275..0041160 100644 ---- a/debugfs/set_fields.c -+++ b/debugfs/set_fields.c -@@ -242,6 +242,9 @@ static struct field_set_info ext4_bg_fields[] = { - { 0, 0, 0, 0 } - }; - -+/* forward declaration */ -+static struct field_set_info mmp_fields[]; -+ - static int check_suffix(const char *field) - { - int len = strlen(field); -@@ -561,6 +564,9 @@ static void print_possible_fields(struct field_set_info *fields) - } else if (fields == inode_fields) { - type = "Inode"; - cmd = "set_inode"; -+ } else if (fields == mmp_fields) { -+ type = "MMP"; -+ cmd = "set_mmp_value"; - } else { - type = "Block group descriptor"; - cmd = "set_block_group"; -@@ -768,6 +774,9 @@ void do_set_mmp_value(int argc, char *argv[]) - return; - } - -+ if (check_fs_open(argv[0])) -+ return; -+ - if (current_fs->super->s_mmp_block == 0) { - com_err(argv[0], 0, "no MMP block allocated\n"); - return; -diff --git a/lib/ext2fs/mmp.c b/lib/ext2fs/mmp.c -index 91f4fb2..b27d9a4 100644 ---- a/lib/ext2fs/mmp.c -+++ b/lib/ext2fs/mmp.c -@@ -127,7 +127,7 @@ errcode_t ext2fs_mmp_write(ext2_filsys fs, blk64_t mmp_blk, void *buf) - - /* I was tempted to make this use O_DIRECT and the mmp_fd, but - * this caused no end of grief, while leaving it as-is works. */ -- retval = io_channel_write_blk64(fs->io, mmp_blk, -fs->blocksize, buf); -+ retval = io_channel_write_blk64(fs->io, mmp_blk, -(int)sizeof(struct mmp_struct), buf); - - #ifdef WORDS_BIGENDIAN - ext2fs_swap_mmp(mmp_s); -diff --git a/tests/f_mmp/script b/tests/f_mmp/script -index 548734a..4aca447 100644 ---- a/tests/f_mmp/script -+++ b/tests/f_mmp/script -@@ -12,7 +12,7 @@ if [ $? == 0 ]; then - fi - - echo "make the test image ..." > $test_name.log --$MKE2FS -q -F -o Linux -b 1024 -O mmp -E mmp_update_interval=1 $TMPFILE 100 >> $test_name.log 2>&1 -+$MKE2FS -q -F -o Linux -b 4096 -O mmp -E mmp_update_interval=1 $TMPFILE 100 >> $test_name.log 2>&1 - status=$? - if [ "$status" != 0 ] ; then - echo "mke2fs -O mmp failed" > $test_name.failed -diff --git a/tests/f_mmp_garbage/expect.1 b/tests/f_mmp_garbage/expect.1 -index 4ee5cfb..a8add10 100644 ---- a/tests/f_mmp_garbage/expect.1 -+++ b/tests/f_mmp_garbage/expect.1 -@@ -5,5 +5,5 @@ Pass 2: Checking directory structure - Pass 3: Checking directory connectivity - Pass 4: Checking reference counts - Pass 5: Checking group summary information --test_filesys: 11/16 files (0.0% non-contiguous), 22/100 blocks -+test_filesys: 11/64 files (0.0% non-contiguous), 13/100 blocks - Exit status is 0 -diff --git a/tests/f_mmp_garbage/expect.2 b/tests/f_mmp_garbage/expect.2 -index 3bf3869..6630002 100644 ---- a/tests/f_mmp_garbage/expect.2 -+++ b/tests/f_mmp_garbage/expect.2 -@@ -3,5 +3,5 @@ Pass 2: Checking directory structure - Pass 3: Checking directory connectivity - Pass 4: Checking reference counts - Pass 5: Checking group summary information --test_filesys: 11/16 files (0.0% non-contiguous), 22/100 blocks -+test_filesys: 11/64 files (0.0% non-contiguous), 13/100 blocks - Exit status is 0 -diff --git a/tests/f_mmp_garbage/script b/tests/f_mmp_garbage/script -index 3c80032..8b5a22a 100644 ---- a/tests/f_mmp_garbage/script -+++ b/tests/f_mmp_garbage/script -@@ -12,7 +12,7 @@ if [ $? == 0 ] ; then - fi - - echo "make the test image ..." > $test_name.log --$MKE2FS -q -F -o Linux -b 1024 -O mmp -E mmp_update_interval=1 $TMPFILE 100 >> $test_name.log 2>&1 -+$MKE2FS -q -F -o Linux -b 4096 -O mmp -E mmp_update_interval=1 $TMPFILE 100 >> $test_name.log 2>&1 - status=$? - if [ "$status" != 0 ] ; then - echo "mke2fs -O mmp failed" > $test_name.failed -diff --git a/tests/m_mmp/expect.1 b/tests/m_mmp/expect.1 -index 3a00815..d3319b3 100644 ---- a/tests/m_mmp/expect.1 -+++ b/tests/m_mmp/expect.1 -@@ -1,55 +1,55 @@ - Filesystem label= - OS type: Linux --Block size=2048 (log=1) --Fragment size=2048 (log=1) -+Block size=4096 (log=2) -+Fragment size=4096 (log=2) - Stride=0 blocks, Stripe width=0 blocks --16384 inodes, 32768 blocks --1638 blocks (5.00%) reserved for the super user -+65536 inodes, 65536 blocks -+3276 blocks (5.00%) reserved for the super user - First data block=0 --Maximum filesystem blocks=33554432 -+Maximum filesystem blocks=67108864 - 2 block groups --16384 blocks per group, 16384 fragments per group --8192 inodes per group -+32768 blocks per group, 32768 fragments per group -+32768 inodes per group - Superblock backups stored on blocks: -- 16384 -+ 32768 - - Allocating group tables: 0/21/2 done - Writing inode tables: 0/21/2 done - Multiple mount protection is enabled with update interval 5 seconds. - Writing superblocks and filesystem accounting information: 0/21/2 done - --Filesystem features: ext_attr resize_inode dir_index filetype mmp sparse_super -+Filesystem features: ext_attr resize_inode dir_index filetype mmp sparse_super large_file - - Pass 1: Checking inodes, blocks, and sizes - Pass 2: Checking directory structure - Pass 3: Checking directory connectivity - Pass 4: Checking reference counts - Pass 5: Checking group summary information --test_filesys: 11/16384 files (0.0% non-contiguous), 1105/32768 blocks -+test_filesys: 11/65536 files (0.0% non-contiguous), 2093/65536 blocks - Exit status is 0 - - Filesystem volume name: - Last mounted on: - Filesystem magic number: 0xEF53 - Filesystem revision #: 1 (dynamic) --Filesystem features: ext_attr resize_inode dir_index filetype mmp sparse_super -+Filesystem features: ext_attr resize_inode dir_index filetype mmp sparse_super large_file - Default mount options: (none) - Filesystem state: clean - Errors behavior: Continue - Filesystem OS type: Linux --Inode count: 16384 --Block count: 32768 --Reserved block count: 1638 --Free blocks: 31663 --Free inodes: 16373 -+Inode count: 65536 -+Block count: 65536 -+Reserved block count: 3276 -+Free blocks: 63443 -+Free inodes: 65525 - First block: 0 --Block size: 2048 --Fragment size: 2048 --Reserved GDT blocks: 31 --Blocks per group: 16384 --Fragments per group: 16384 --Inodes per group: 8192 --Inode blocks per group: 512 -+Block size: 4096 -+Fragment size: 4096 -+Reserved GDT blocks: 15 -+Blocks per group: 32768 -+Fragments per group: 32768 -+Inodes per group: 32768 -+Inode blocks per group: 1024 - Mount count: 0 - Check interval: 15552000 (6 months) - Reserved blocks uid: 0 -@@ -57,23 +57,23 @@ Reserved blocks gid: 0 - First inode: 11 - Inode size: 128 - Default directory hash: half_md4 --MMP block number: 557 -+MMP block number: 1049 - MMP update interval: 5 - - --Group 0: (Blocks 0-16383) -+Group 0: (Blocks 0-32767) - Primary superblock at 0, Group descriptors at 1-1 -- Reserved GDT blocks at 2-32 -- Block bitmap at 33 (+33), Inode bitmap at 34 (+34) -- Inode table at 35-546 (+35) -- 15826 free blocks, 8181 free inodes, 2 directories -- Free blocks: 558-16383 -- Free inodes: 12-8192 --Group 1: (Blocks 16384-32767) -- Backup superblock at 16384, Group descriptors at 16385-16385 -- Reserved GDT blocks at 16386-16416 -- Block bitmap at 16417 (+33), Inode bitmap at 16418 (+34) -- Inode table at 16419-16930 (+35) -- 15837 free blocks, 8192 free inodes, 0 directories -- Free blocks: 16931-32767 -- Free inodes: 8193-16384 -+ Reserved GDT blocks at 2-16 -+ Block bitmap at 17 (+17), Inode bitmap at 18 (+18) -+ Inode table at 19-1042 (+19) -+ 31718 free blocks, 32757 free inodes, 2 directories -+ Free blocks: 1050-32767 -+ Free inodes: 12-32768 -+Group 1: (Blocks 32768-65535) -+ Backup superblock at 32768, Group descriptors at 32769-32769 -+ Reserved GDT blocks at 32770-32784 -+ Block bitmap at 32785 (+17), Inode bitmap at 32786 (+18) -+ Inode table at 32787-33810 (+19) -+ 31725 free blocks, 32768 free inodes, 0 directories -+ Free blocks: 33811-65535 -+ Free inodes: 32769-65536 -diff --git a/tests/m_mmp/script b/tests/m_mmp/script -index 1547463..b3e206a 100644 ---- a/tests/m_mmp/script -+++ b/tests/m_mmp/script -@@ -10,6 +10,6 @@ if [ $? == 0 ]; then - echo "skipped for tmpfs (no O_DIRECT support)" - return 0 - fi --MKE2FS_OPTS="-O mmp" -+MKE2FS_OPTS="-b 4096 -O mmp" - . $cmd_dir/run_mke2fs - unset MKE2FS_DEVICE_SECTSIZE -diff --git a/tests/t_mmp_1on/script b/tests/t_mmp_1on/script -index ee9884f..3b0a376 100644 ---- a/tests/t_mmp_1on/script -+++ b/tests/t_mmp_1on/script -@@ -11,7 +11,7 @@ if [ $? == 0 ] ; then - return 0 - fi - --$MKE2FS -q -F -o Linux -b 1024 $TMPFILE 100 > $test_name.log 2>&1 -+$MKE2FS -q -F -o Linux -b 4096 $TMPFILE 100 > $test_name.log 2>&1 - status=$? - if [ "$status" != 0 ] ; then - echo "mke2fs failed" > $test_name.failed -diff --git a/tests/t_mmp_2off/script b/tests/t_mmp_2off/script -index ec9f71e..56c6bed 100644 ---- a/tests/t_mmp_2off/script -+++ b/tests/t_mmp_2off/script -@@ -11,7 +11,7 @@ if [ $? == 0 ]; then - return 0 - fi - --$MKE2FS -q -F -o Linux -b 1024 -O mmp $TMPFILE 100 > $test_name.log 2>&1 -+$MKE2FS -q -F -o Linux -b 4096 -O mmp $TMPFILE 100 > $test_name.log 2>&1 - status=$? - if [ "$status" != 0 ] ; then - echo "mke2fs -O mmp failed" > $test_name.failed diff --git a/e2fsprogs.spec b/e2fsprogs.spec index 10d8deb..20e9e4b 100644 --- a/e2fsprogs.spec +++ b/e2fsprogs.spec @@ -4,7 +4,7 @@ Summary: Utilities for managing ext2, ext3, and ext4 filesystems Name: e2fsprogs Version: 1.42 -Release: 0.7.WIP.1016%{?dist} +Release: 0.8.WIP.1120%{?dist} # License tags based on COPYING file distinctions for various components License: GPLv2 @@ -15,7 +15,6 @@ Source0: http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.42-WIP-1016.ta Source1: ext2_types-wrapper.h Patch1: e2fsprogs-1.40.4-sb_feature_check_ignore.patch -Patch2: e2fsprogs-1.42-bigendian-fix.patch Url: http://e2fsprogs.sourceforge.net/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -152,8 +151,6 @@ It was originally inspired by the Multics SubSystem library. # after an selinux install... %patch1 -p1 -b .featurecheck -%patch2 -p1 - %build %configure --enable-elf-shlibs --enable-nls --disable-uuidd --disable-fsck \ --disable-e2initrd-helper --disable-libblkid --disable-libuuid @@ -322,6 +319,9 @@ exit 0 %{_libdir}/pkgconfig/ss.pc %changelog +* Mon Nov 21 2011 Eric Sandeen 1.42-0.8.WIP.1120 +- New upstream snapshot release + * Thu Nov 10 2011 Eric Sandeen 1.42-0.7.WIP.1016 - Several mmp-related fixes diff --git a/sources b/sources index fc4292f..705da05 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d57ecea6137c068a8c7c46af6160dea1 e2fsprogs-1.42-WIP-1016.tar.gz +789474e736c4a062bcd75c483e0b21b9 e2fsprogs-1.42-WIP-1120.tar.gz