mirror of https://github.com/vitalif/e2fsprogs
dumpe2fs: print the expected block group checksum if it is incorrect
This helps to diagnose problems caused by incorrect block group checksums. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>bitmap-optimize
parent
def8da3829
commit
87141781aa
|
@ -259,6 +259,7 @@ libext2fs.so.2 e2fslibs #MINVER#
|
|||
ext2fs_get_pathname@Base 1.37
|
||||
ext2fs_get_rec_len@Base 1.41.7
|
||||
ext2fs_group_blocks_count@Base 1.42
|
||||
ext2fs_group_desc_csum@Base 1.42.2
|
||||
ext2fs_group_desc@Base 1.42
|
||||
ext2fs_group_desc_csum_set@Base 1.41.0
|
||||
ext2fs_group_desc_csum_verify@Base 1.41.0
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#define STATIC static
|
||||
#endif
|
||||
|
||||
STATIC __u16 ext2fs_group_desc_csum(ext2_filsys fs, dgrp_t group)
|
||||
__u16 ext2fs_group_desc_csum(ext2_filsys fs, dgrp_t group)
|
||||
{
|
||||
__u16 crc = 0;
|
||||
struct ext2_group_desc *desc;
|
||||
|
|
|
@ -947,6 +947,7 @@ extern __u32 ext2fs_crc32c_le(__u32 crc, unsigned char const *p, size_t len);
|
|||
extern void ext2fs_group_desc_csum_set(ext2_filsys fs, dgrp_t group);
|
||||
extern int ext2fs_group_desc_csum_verify(ext2_filsys fs, dgrp_t group);
|
||||
extern errcode_t ext2fs_set_gdt_csum(ext2_filsys fs);
|
||||
extern __u16 ext2fs_group_desc_csum(ext2_filsys fs, dgrp_t group);
|
||||
|
||||
/* dblist.c */
|
||||
|
||||
|
|
|
@ -190,10 +190,16 @@ static void list_desc (ext2_filsys fs)
|
|||
print_range(first_block, last_block);
|
||||
fputs(")", stdout);
|
||||
print_bg_opts(fs, i);
|
||||
if (fs->super->s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_GDT_CSUM)
|
||||
printf(_(" Checksum 0x%04x, unused inodes %u\n"),
|
||||
ext2fs_bg_checksum(fs, i),
|
||||
if (fs->super->s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_GDT_CSUM) {
|
||||
unsigned csum = ext2fs_bg_checksum(fs, i);
|
||||
unsigned exp_csum = ext2fs_group_desc_csum(fs, i);
|
||||
|
||||
printf(_(" Checksum 0x%04x"), csum);
|
||||
if (csum != exp_csum)
|
||||
printf(_(" (EXPECTED 0x%04x)"), exp_csum);
|
||||
printf(_(", unused inodes %u\n"),
|
||||
ext2fs_bg_itable_unused(fs, i));
|
||||
}
|
||||
has_super = ((i==0) || super_blk);
|
||||
if (has_super) {
|
||||
printf (_(" %s superblock at "),
|
||||
|
|
Loading…
Reference in New Issue