X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=misc%2Fdumpe2fs.c;h=7c080ed9fa59fb826135aea5d8622d4510b5e27c;hb=c2b975f843505f5b98eda17ede4e188bd9bdc835;hp=9a6f586ec068c76ff3936112f820dbc51e0e21b7;hpb=8335d3c57ec077d8fb6beeaed7c7bb1fe7bca17e;p=tools%2Fe2fsprogs.git diff --git a/misc/dumpe2fs.c b/misc/dumpe2fs.c index 9a6f586..7c080ed 100644 --- a/misc/dumpe2fs.c +++ b/misc/dumpe2fs.c @@ -196,9 +196,9 @@ static void list_desc(ext2_filsys fs, int grp_only) &old_desc_blk, &new_desc_blk, 0); if (grp_only) { - printf("%lu:%llu:", i, first_block); + printf("%lu:%llu:", i, (unsigned long long) first_block); if (i == 0 || super_blk) - printf("%llu:", super_blk); + printf("%llu:", (unsigned long long) super_blk); else printf("-1:"); if (old_desc_blk) { @@ -206,13 +206,13 @@ static void list_desc(ext2_filsys fs, int grp_only) old_desc_blk + old_desc_blocks - 1); printf(":"); } else if (new_desc_blk) - printf("%llu:", new_desc_blk); + printf("%llu:", (unsigned long long) new_desc_blk); else printf("-1:"); printf("%llu:%llu:%llu\n", - ext2fs_block_bitmap_loc(fs, i), - ext2fs_inode_bitmap_loc(fs, i), - ext2fs_inode_table_loc(fs, i)); + (unsigned long long) ext2fs_block_bitmap_loc(fs, i), + (unsigned long long) ext2fs_inode_bitmap_loc(fs, i), + (unsigned long long) ext2fs_inode_table_loc(fs, i)); continue; } @@ -338,6 +338,7 @@ static void list_bad_blocks(ext2_filsys fs, int dump) if (retval) { com_err("ext2fs_badblocks_list_iterate_begin", retval, "%s", _("while printing bad block list")); + ext2fs_badblocks_list_free(bb_list); return; } if (dump) { @@ -362,8 +363,9 @@ static void print_inline_journal_information(ext2_filsys fs) struct ext2_inode inode; ext2_file_t journal_file; errcode_t retval; - ino_t ino = fs->super->s_journal_inum; + ext2_ino_t ino = fs->super->s_journal_inum; char buf[1024]; + int flags; if (fs->flags & EXT2_FLAG_IMAGE_FILE) return; @@ -392,7 +394,9 @@ static void print_inline_journal_information(ext2_filsys fs) _("Journal superblock magic number invalid!\n")); exit(1); } - e2p_list_journal_super(stdout, buf, fs->blocksize, 0); + flags = ext2fs_has_feature_fast_commit(fs->super) ? + E2P_LIST_JOURNAL_FLAG_FC : 0; + e2p_list_journal_super(stdout, buf, fs->blocksize, flags); } static void print_journal_information(ext2_filsys fs) @@ -400,6 +404,7 @@ static void print_journal_information(ext2_filsys fs) errcode_t retval; char buf[1024]; journal_superblock_t *jsb; + int flags; /* Get the journal superblock */ if ((retval = io_channel_read_blk64(fs->io, @@ -417,7 +422,9 @@ static void print_journal_information(ext2_filsys fs) _("Couldn't find journal superblock magic numbers")); exit(1); } - e2p_list_journal_super(stdout, buf, fs->blocksize, 0); + flags = ext2fs_has_feature_fast_commit(fs->super) ? + E2P_LIST_JOURNAL_FLAG_FC : 0; + e2p_list_journal_super(stdout, buf, fs->blocksize, flags); } static int check_mmp(ext2_filsys fs) @@ -439,8 +446,10 @@ static int check_mmp(ext2_filsys fs) time_t mmp_time = mmp->mmp_time; fprintf(stderr, - "%s: MMP last updated by '%s' on %s", - program_name, mmp->mmp_nodename, + "%s: MMP update by '%.*s%.*s' at %s", + program_name, + EXT2_LEN_STR(mmp->mmp_nodename), + EXT2_LEN_STR(mmp->mmp_bdevname), ctime(&mmp_time)); } retval = 1; @@ -477,7 +486,8 @@ static void print_mmp_block(ext2_filsys fs) if (retval) { com_err(program_name, retval, _("reading MMP block %llu from '%s'\n"), - fs->super->s_mmp_block, fs->device_name); + (unsigned long long) fs->super->s_mmp_block, + fs->device_name); return; } @@ -488,9 +498,12 @@ static void print_mmp_block(ext2_filsys fs) printf(" mmp_check_interval: %d\n", mmp->mmp_check_interval); printf(" mmp_sequence: %#08x\n", mmp->mmp_seq); printf(" mmp_update_date: %s", ctime(&mmp_time)); - printf(" mmp_update_time: %lld\n", mmp->mmp_time); - printf(" mmp_node_name: %s\n", mmp->mmp_nodename); - printf(" mmp_device_name: %s\n", mmp->mmp_bdevname); + printf(" mmp_update_time: %llu\n", + (unsigned long long) mmp->mmp_time); + printf(" mmp_node_name: %.*s\n", + EXT2_LEN_STR(mmp->mmp_nodename)); + printf(" mmp_device_name: %.*s\n", + EXT2_LEN_STR(mmp->mmp_bdevname)); } static void parse_extended_opts(const char *opts, blk64_t *superblock, @@ -606,7 +619,8 @@ int main (int argc, char ** argv) mmp_check = 1; header_only = 1; } - } + } else + usage(); if (!mmp_check) fprintf(stderr, "dumpe2fs %s (%s)\n", E2FSPROGS_VERSION, @@ -661,7 +675,7 @@ int main (int argc, char ** argv) device_name = argv[optind++]; flags = EXT2_FLAG_JOURNAL_DEV_OK | EXT2_FLAG_SOFTSUPP_FEATURES | - EXT2_FLAG_64BITS; + EXT2_FLAG_64BITS | EXT2_FLAG_THREADS; if (force) flags |= EXT2_FLAG_FORCE; if (image_dump)