mirror of https://github.com/vitalif/e2fsprogs
dumpe2fs: display external journal feature flags
Display the feature flags of an external journal. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reported-by: TR Reardon <thomas_reardon@hotmail.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>crypto
parent
811bccef89
commit
3727a0e745
|
@ -433,8 +433,9 @@ static void print_journal_information(ext2_filsys fs)
|
|||
errcode_t retval;
|
||||
char buf[1024];
|
||||
char str[80];
|
||||
unsigned int i;
|
||||
unsigned int i, j, printed = 0;
|
||||
journal_superblock_t *jsb;
|
||||
__u32 *mask_ptr, mask, m;
|
||||
|
||||
/* Get the journal superblock */
|
||||
if ((retval = io_channel_read_blk64(fs->io,
|
||||
|
@ -465,6 +466,17 @@ static void print_journal_information(ext2_filsys fs)
|
|||
journal_checksum_type_str(jsb->s_checksum_type),
|
||||
ext2fs_be32_to_cpu(jsb->s_checksum));
|
||||
|
||||
printf("%s", _("Journal features: "));
|
||||
for (i = 0, mask_ptr = &jsb->s_feature_compat; i < 3; i++, mask_ptr++) {
|
||||
mask = be32_to_cpu(*mask_ptr);
|
||||
for (j = 0, m = 1; j < 32; j++, m <<= 1) {
|
||||
if (mask & m) {
|
||||
printf(" %s", e2p_jrnl_feature2string(i, m));
|
||||
printed++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
printf(_("\nJournal block size: %u\n"
|
||||
"Journal length: %u\n"
|
||||
"Journal first block: %u\n"
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
e2fsck external journal
|
||||
../e2fsck/e2fsck: Filesystem has unsupported feature(s) while trying to open test.img
|
||||
|
||||
The superblock could not be read or does not describe a valid ext2/ext3/ext4
|
||||
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
|
||||
filesystem (and not swap or ufs or something else), then the superblock
|
||||
is corrupt, and you might try running e2fsck with an alternate superblock:
|
||||
e2fsck -b 8193 <device>
|
||||
or
|
||||
e2fsck -b 32768 <device>
|
||||
|
||||
Exit status is 8
|
||||
dumpe2fs external journal
|
||||
Filesystem volume name: <none>
|
||||
Last mounted on: <not available>
|
||||
Filesystem magic number: 0xEF53
|
||||
Filesystem revision #: 1 (dynamic)
|
||||
Filesystem features: journal_dev metadata_csum
|
||||
Default mount options: user_xattr acl block_validity
|
||||
Filesystem state: clean
|
||||
Errors behavior: Continue
|
||||
Filesystem OS type: Linux
|
||||
Inode count: 0
|
||||
Block count: 2048
|
||||
Reserved block count: 0
|
||||
Free blocks: 0
|
||||
Free inodes: 0
|
||||
First block: 1
|
||||
Block size: 1024
|
||||
Fragment size: 1024
|
||||
Blocks per group: 8192
|
||||
Fragments per group: 8192
|
||||
Inodes per group: 0
|
||||
Inode blocks per group: 0
|
||||
Mount count: 0
|
||||
Check interval: 0 (<none>)
|
||||
Reserved blocks uid: 0
|
||||
Reserved blocks gid: 0
|
||||
First inode: 11
|
||||
Inode size: 256
|
||||
Required extra isize: 28
|
||||
Desired extra isize: 28
|
||||
Default directory hash: half_md4
|
||||
Checksum type: crc32c
|
||||
Checksum: 0x3a9935ab
|
||||
Journal checksum type: crc32c
|
||||
Journal checksum: 0x661e816f
|
||||
Journal features: journal_64bit journal_checksum_v3
|
||||
Journal block size: 1024
|
||||
Journal length: 2048
|
||||
Journal first block: 3
|
||||
Journal sequence: 0x00000003
|
||||
Journal start: 0
|
||||
Journal number of users: 1
|
||||
Journal users: 117f752e-f27d-4f6f-a652-072586a29b82
|
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
dumpe2fs of external journal device
|
|
@ -0,0 +1,40 @@
|
|||
FSCK_OPT=-fy
|
||||
OUT=$test_name.log
|
||||
if [ -f $test_dir/expect.gz ]; then
|
||||
EXP=$test_name.tmp
|
||||
gunzip < $test_dir/expect.gz > $EXP1
|
||||
else
|
||||
EXP=$test_dir/expect
|
||||
fi
|
||||
|
||||
cp /dev/null $OUT
|
||||
|
||||
gunzip < $test_dir/image.gz > $TMPFILE
|
||||
|
||||
echo "e2fsck external journal" >> $OUT
|
||||
$FSCK -fy -N test_filesys $TMPFILE > $OUT.new 2>&1
|
||||
status=$?
|
||||
echo Exit status is $status >> $OUT.new
|
||||
sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
|
||||
rm -f $OUT.new
|
||||
|
||||
echo "dumpe2fs external journal" >> $OUT
|
||||
$DUMPE2FS $TMPFILE > $OUT.new 2>&1
|
||||
sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
|
||||
rm -f $OUT.new
|
||||
|
||||
rm -f $TMPFILE
|
||||
|
||||
cmp -s $OUT $EXP
|
||||
status=$?
|
||||
|
||||
if [ "$status" = 0 ] ; then
|
||||
echo "$test_name: $test_description: ok"
|
||||
touch $test_name.ok
|
||||
else
|
||||
echo "$test_name: $test_description: failed"
|
||||
diff $DIFF_OPTS $EXP $OUT > $test_name.failed
|
||||
rm -f $test_name.tmp
|
||||
fi
|
||||
|
||||
unset IMAGE FSCK_OPT OUT EXP
|
Loading…
Reference in New Issue