From: Theodore Ts'o Date: Mon, 13 Dec 2010 14:16:09 +0000 (-0500) Subject: Merge branch 'maint' into next X-Git-Tag: v1.41.90.wc1~37 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=0358c9f9a43ce0ef33f7891ca9f9d67abd3b4853;p=tools%2Fe2fsprogs.git Merge branch 'maint' into next Conflicts: e2fsck/pass4.c misc/dumpe2fs.c resize/online.c --- 0358c9f9a43ce0ef33f7891ca9f9d67abd3b4853 diff --cc e2fsck/pass4.c index bb61c00,515cb84..695612b --- a/e2fsck/pass4.c +++ b/e2fsck/pass4.c @@@ -121,6 -121,8 +121,8 @@@ void e2fsck_pass4(e2fsck_t ctx /* Protect loop from wrap-around if s_inodes_count maxed */ for (i=1; i <= fs->super->s_inodes_count && i > 0; i++) { - int isdir = ext2fs_test_inode_bitmap(ctx->inode_dir_map, i); ++ int isdir = ext2fs_test_inode_bitmap2(ctx->inode_dir_map, i); + if (ctx->flags & E2F_FLAG_SIGNAL_MASK) goto errout; if ((i % fs->super->s_inodes_per_group) == 0) { diff --cc misc/dumpe2fs.c index 6ec0858,5e0a8a2..c01ffe5 --- a/misc/dumpe2fs.c +++ b/misc/dumpe2fs.c @@@ -129,9 -144,8 +144,8 @@@ static void print_bg_rel_offset(ext2_fi static void list_desc (ext2_filsys fs) { unsigned long i; - long diff; - blk_t first_block, last_block; - blk_t super_blk, old_desc_blk, new_desc_blk; + blk64_t first_block, last_block; + blk64_t super_blk, old_desc_blk, new_desc_blk; char *block_bitmap=NULL, *inode_bitmap=NULL; int inode_blocks_per_group, old_desc_blocks, reserved_gdt; int block_nbytes, inode_nbytes; @@@ -198,34 -212,34 +212,31 @@@ if (has_super) fputc('\n', stdout); fputs(_(" Block bitmap at "), stdout); - print_number(fs->group_desc[i].bg_block_bitmap); - print_bg_rel_offset(fs, fs->group_desc[i].bg_block_bitmap, 0, + print_number(ext2fs_block_bitmap_loc(fs, i)); - diff = ext2fs_block_bitmap_loc(fs, i) - first_block; - if (diff >= 0) - printf(" (+%ld)", diff); ++ print_bg_rel_offset(fs, ext2fs_block_bitmap_loc(fs, i), 0, + first_block, last_block); - fputs(_(", Inode bitmap at "), stdout); - print_number(fs->group_desc[i].bg_inode_bitmap); - print_bg_rel_offset(fs, fs->group_desc[i].bg_inode_bitmap, 0, + print_number(ext2fs_inode_bitmap_loc(fs, i)); - diff = ext2fs_inode_bitmap_loc(fs, i) - first_block; - if (diff >= 0) - printf(" (+%ld)", diff); ++ print_bg_rel_offset(fs, ext2fs_inode_bitmap_loc(fs, i), 0, + first_block, last_block); - fputs(_("\n Inode table at "), stdout); - print_range(fs->group_desc[i].bg_inode_table, - fs->group_desc[i].bg_inode_table + + print_range(ext2fs_inode_table_loc(fs, i), + ext2fs_inode_table_loc(fs, i) + inode_blocks_per_group - 1); - diff = ext2fs_inode_table_loc(fs, i) - first_block; - if (diff > 0) - printf(" (+%ld)", diff); - print_bg_rel_offset(fs, fs->group_desc[i].bg_inode_table, 1, ++ print_bg_rel_offset(fs, ext2fs_inode_table_loc(fs, i), 1, + first_block, last_block); - printf (_("\n %u free blocks, %u free inodes, " "%u directories%s"), - fs->group_desc[i].bg_free_blocks_count, - fs->group_desc[i].bg_free_inodes_count, - fs->group_desc[i].bg_used_dirs_count, - fs->group_desc[i].bg_itable_unused ? "" : "\n"); - if (fs->group_desc[i].bg_itable_unused) + ext2fs_bg_free_blocks_count(fs, i), + ext2fs_bg_free_inodes_count(fs, i), + ext2fs_bg_used_dirs_count(fs, i), + ext2fs_bg_itable_unused(fs, i) ? "" : "\n"); + if (ext2fs_bg_itable_unused(fs, i)) printf (_(", %u unused inodes\n"), - fs->group_desc[i].bg_itable_unused); + ext2fs_bg_itable_unused(fs, i)); if (block_bitmap) { fputs(_(" Free blocks: "), stdout); - ext2fs_get_block_bitmap_range(fs->block_map, + ext2fs_get_block_bitmap_range2(fs->block_map, blk_itr, block_nbytes << 3, block_bitmap); print_free (i, block_bitmap, fs->super->s_blocks_per_group, diff --cc misc/mke2fs.c index 0980045,d15b94c..de5700e --- a/misc/mke2fs.c +++ b/misc/mke2fs.c @@@ -1632,12 -1739,9 +1690,11 @@@ static void PRS(int argc, char *argv[] if ((blocksize < 0) && (use_bsize < (-blocksize))) use_bsize = -blocksize; blocksize = use_bsize; - fs_param.s_blocks_count /= blocksize / 1024; + ext2fs_blocks_count_set(&fs_param, + ext2fs_blocks_count(&fs_param) / + (blocksize / 1024)); } else { - if (blocksize < lsector_size || /* Impossible */ - (!force && (blocksize < psector_size))) { /* Suboptimal */ + if (blocksize < lsector_size) { /* Impossible */ com_err(program_name, EINVAL, _("while setting blocksize; too small " "for device\n")); diff --cc resize/online.c index 9949d60,2a40584..1d8d4ec --- a/resize/online.c +++ b/resize/online.c @@@ -37,9 -37,8 +37,8 @@@ errcode_t online_resize_fs(ext2_filsys printf(_("Filesystem at %s is mounted on %s; " "on-line resizing required\n"), fs->device_name, mtpt); - if (*new_size < sb->s_blocks_count) { + if (*new_size < ext2fs_blocks_count(sb)) { - printf(_("On-line shrinking from %llu to %llu not supported.\n"), - ext2fs_blocks_count(sb), *new_size); + com_err(program_name, 0, _("On-line shrinking not supported")); exit(1); }