New upstream snapshot
This commit is contained in:
parent
ef8f64dfa8
commit
af82b1f100
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,3 +5,4 @@ e2fsprogs-1.41.12.tar.gz
|
|||||||
/e2fsprogs-1.42-WIP-0925.tar.gz
|
/e2fsprogs-1.42-WIP-0925.tar.gz
|
||||||
/e2fsprogs-1.42-WIP-1009.tar.gz
|
/e2fsprogs-1.42-WIP-1009.tar.gz
|
||||||
/e2fsprogs-1.42-WIP-1016.tar.gz
|
/e2fsprogs-1.42-WIP-1016.tar.gz
|
||||||
|
/e2fsprogs-1.42-WIP-1120.tar.gz
|
||||||
|
@ -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 <sandeen@redhat.com>
|
|
||||||
---
|
|
||||||
|
|
||||||
(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: <none>
|
|
||||||
Last mounted on: <not available>
|
|
||||||
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
|
|
@ -4,7 +4,7 @@
|
|||||||
Summary: Utilities for managing ext2, ext3, and ext4 filesystems
|
Summary: Utilities for managing ext2, ext3, and ext4 filesystems
|
||||||
Name: e2fsprogs
|
Name: e2fsprogs
|
||||||
Version: 1.42
|
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 tags based on COPYING file distinctions for various components
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
@ -15,7 +15,6 @@ Source0: http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.42-WIP-1016.ta
|
|||||||
Source1: ext2_types-wrapper.h
|
Source1: ext2_types-wrapper.h
|
||||||
|
|
||||||
Patch1: e2fsprogs-1.40.4-sb_feature_check_ignore.patch
|
Patch1: e2fsprogs-1.40.4-sb_feature_check_ignore.patch
|
||||||
Patch2: e2fsprogs-1.42-bigendian-fix.patch
|
|
||||||
|
|
||||||
Url: http://e2fsprogs.sourceforge.net/
|
Url: http://e2fsprogs.sourceforge.net/
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
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...
|
# after an selinux install...
|
||||||
%patch1 -p1 -b .featurecheck
|
%patch1 -p1 -b .featurecheck
|
||||||
|
|
||||||
%patch2 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure --enable-elf-shlibs --enable-nls --disable-uuidd --disable-fsck \
|
%configure --enable-elf-shlibs --enable-nls --disable-uuidd --disable-fsck \
|
||||||
--disable-e2initrd-helper --disable-libblkid --disable-libuuid
|
--disable-e2initrd-helper --disable-libblkid --disable-libuuid
|
||||||
@ -322,6 +319,9 @@ exit 0
|
|||||||
%{_libdir}/pkgconfig/ss.pc
|
%{_libdir}/pkgconfig/ss.pc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Nov 21 2011 Eric Sandeen <sandeen@redhat.com> 1.42-0.8.WIP.1120
|
||||||
|
- New upstream snapshot release
|
||||||
|
|
||||||
* Thu Nov 10 2011 Eric Sandeen <sandeen@redhat.com> 1.42-0.7.WIP.1016
|
* Thu Nov 10 2011 Eric Sandeen <sandeen@redhat.com> 1.42-0.7.WIP.1016
|
||||||
- Several mmp-related fixes
|
- Several mmp-related fixes
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user