Whamcloud - gitweb
LU-14345 e2fsck: fix check of directories over 4GB
[tools/e2fsprogs.git] / e2fsck / e2fsck.c
index 72c6bb7..c3a98b0 100644 (file)
@@ -75,6 +75,10 @@ errcode_t e2fsck_reset_context(e2fsck_t ctx)
                ext2fs_free_block_bitmap(ctx->block_found_map);
                ctx->block_found_map = 0;
        }
+       if (ctx->inodes_to_rebuild) {
+               ext2fs_free_inode_bitmap(ctx->inodes_to_rebuild);
+               ctx->inodes_to_rebuild = 0;
+       }
        if (ctx->inode_link_info) {
                ext2fs_free_icount(ctx->inode_link_info);
                ctx->inode_link_info = 0;
@@ -102,6 +106,10 @@ errcode_t e2fsck_reset_context(e2fsck_t ctx)
                ea_refcount_free(ctx->refcount_extra);
                ctx->refcount_extra = 0;
        }
+       if (ctx->refcount_orig) {
+               ea_refcount_free(ctx->refcount_orig);
+               ctx->refcount_orig = 0;
+       }
        if (ctx->ea_block_quota_blocks) {
                ea_refcount_free(ctx->ea_block_quota_blocks);
                ctx->ea_block_quota_blocks = 0;
@@ -181,7 +189,11 @@ errcode_t e2fsck_reset_context(e2fsck_t ctx)
        ctx->fs_fragmented = 0;
        ctx->fs_fragmented_dir = 0;
        ctx->large_files = 0;
+       ctx->large_dirs = 0;
        ctx->fs_unexpanded_inodes = 0;
+#ifdef CONFIG_PFSCK
+       ctx->fs_need_locking = 0;
+#endif
 
        for (i=0; i < MAX_EXTENT_DEPTH_COUNT; i++)
                ctx->extent_depth_count[i] = 0;