Whamcloud - gitweb
LU-14768 e2fsck: merge expand_eisize_map properly
[tools/e2fsprogs.git] / e2fsck / pass1.c
index 25fbed1..93f8f23 100644 (file)
@@ -2989,6 +2989,7 @@ static errcode_t e2fsck_pass1_thread_prepare(e2fsck_t global_ctx, e2fsck_t *thre
        memcpy(thread_context, global_ctx, sizeof(struct e2fsck_struct));
        thread_context->block_dup_map = NULL;
        thread_context->casefolded_dirs = NULL;
+       thread_context->expand_eisize_map = NULL;
 
        retval = e2fsck_allocate_block_bitmap(global_ctx->fs,
                                _("in-use block map"), EXT2FS_BMAP64_RBTREE,
@@ -3378,6 +3379,9 @@ static errcode_t e2fsck_pass1_merge_context(e2fsck_t global_ctx,
 
        e2fsck_pass1_merge_invalid_bitmaps(global_ctx, thread_ctx);
 
+       if (thread_ctx->min_extra_isize < global_ctx->min_extra_isize)
+               global_ctx->min_extra_isize = thread_ctx->min_extra_isize;
+
        retval = e2fsck_pass1_merge_bitmap(global_fs,
                                &thread_ctx->inode_used_map,
                                &global_ctx->inode_used_map);
@@ -3415,6 +3419,12 @@ static errcode_t e2fsck_pass1_merge_context(e2fsck_t global_ctx,
        if (retval)
                return retval;
 
+       retval = e2fsck_pass1_merge_bitmap(global_fs,
+                               &thread_ctx->expand_eisize_map,
+                               &global_ctx->expand_eisize_map);
+       if (retval)
+               return retval;
+
        if (ext2fs_has_feature_shared_blocks(global_fs->super) &&
            !(global_ctx->options & E2F_OPT_UNSHARE_BLOCKS))
                return 0;