Whamcloud - gitweb
git://git.whamcloud.com
/
tools
/
e2fsprogs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed missing not_fixed branch in e2fsck so that if the frag size field in
[tools/e2fsprogs.git]
/
e2fsck
/
e2fsck.c
diff --git
a/e2fsck/e2fsck.c
b/e2fsck/e2fsck.c
index
1ec8ffa
..
2a84c51
100644
(file)
--- a/
e2fsck/e2fsck.c
+++ b/
e2fsck/e2fsck.c
@@
-22,14
+22,14
@@
errcode_t e2fsck_allocate_context(e2fsck_t *ret)
e2fsck_t context;
errcode_t retval;
e2fsck_t context;
errcode_t retval;
- retval = ext2fs_get_mem(sizeof(struct e2fsck_struct),
- (void **) &context);
+ retval = ext2fs_get_mem(sizeof(struct e2fsck_struct), &context);
if (retval)
return retval;
memset(context, 0, sizeof(struct e2fsck_struct));
context->process_inode_size = 256;
if (retval)
return retval;
memset(context, 0, sizeof(struct e2fsck_struct));
context->process_inode_size = 256;
+ context->ext_attr_ver = 2;
*ret = context;
return 0;
*ret = context;
return 0;
@@
-42,6
+42,8
@@
errcode_t e2fsck_allocate_context(e2fsck_t *ret)
errcode_t e2fsck_reset_context(e2fsck_t ctx)
{
ctx->flags = 0;
errcode_t e2fsck_reset_context(e2fsck_t ctx)
{
ctx->flags = 0;
+ ctx->lost_and_found = 0;
+ ctx->bad_lost_and_found = 0;
if (ctx->inode_used_map) {
ext2fs_free_inode_bitmap(ctx->inode_used_map);
ctx->inode_used_map = 0;
if (ctx->inode_used_map) {
ext2fs_free_inode_bitmap(ctx->inode_used_map);
ctx->inode_used_map = 0;
@@
-72,6
+74,9
@@
errcode_t e2fsck_reset_context(e2fsck_t ctx)
ctx->fs->dblist = 0;
}
e2fsck_free_dir_info(ctx);
ctx->fs->dblist = 0;
}
e2fsck_free_dir_info(ctx);
+#ifdef ENABLE_HTREE
+ e2fsck_free_dx_dir_info(ctx);
+#endif
if (ctx->refcount) {
ea_refcount_free(ctx->refcount);
ctx->refcount = 0;
if (ctx->refcount) {
ea_refcount_free(ctx->refcount);
ctx->refcount = 0;
@@
-100,20
+105,24
@@
errcode_t e2fsck_reset_context(e2fsck_t ctx)
ext2fs_free_inode_bitmap(ctx->inode_imagic_map);
ctx->inode_imagic_map = 0;
}
ext2fs_free_inode_bitmap(ctx->inode_imagic_map);
ctx->inode_imagic_map = 0;
}
+ if (ctx->dirs_to_hash) {
+ ext2fs_u32_list_free(ctx->dirs_to_hash);
+ ctx->dirs_to_hash = 0;
+ }
/*
* Clear the array of invalid meta-data flags
*/
if (ctx->invalid_inode_bitmap_flag) {
/*
* Clear the array of invalid meta-data flags
*/
if (ctx->invalid_inode_bitmap_flag) {
- ext2fs_free_mem(
(void **)
&ctx->invalid_inode_bitmap_flag);
+ ext2fs_free_mem(&ctx->invalid_inode_bitmap_flag);
ctx->invalid_inode_bitmap_flag = 0;
}
if (ctx->invalid_block_bitmap_flag) {
ctx->invalid_inode_bitmap_flag = 0;
}
if (ctx->invalid_block_bitmap_flag) {
- ext2fs_free_mem(
(void **)
&ctx->invalid_block_bitmap_flag);
+ ext2fs_free_mem(&ctx->invalid_block_bitmap_flag);
ctx->invalid_block_bitmap_flag = 0;
}
if (ctx->invalid_inode_table_flag) {
ctx->invalid_block_bitmap_flag = 0;
}
if (ctx->invalid_inode_table_flag) {
- ext2fs_free_mem(
(void **)
&ctx->invalid_inode_table_flag);
+ ext2fs_free_mem(&ctx->invalid_inode_table_flag);
ctx->invalid_inode_table_flag = 0;
}
ctx->invalid_inode_table_flag = 0;
}
@@
-147,8
+156,10
@@
void e2fsck_free_context(e2fsck_t ctx)
return;
e2fsck_reset_context(ctx);
return;
e2fsck_reset_context(ctx);
-
- ext2fs_free_mem((void **) &ctx);
+ if (ctx->blkid)
+ blkid_put_cache(ctx->blkid);
+
+ ext2fs_free_mem(&ctx);
}
/*
}
/*
@@
-169,8
+180,10
@@
int e2fsck_run(e2fsck_t ctx)
pass_t e2fsck_pass;
#ifdef HAVE_SETJMP_H
pass_t e2fsck_pass;
#ifdef HAVE_SETJMP_H
- if (setjmp(ctx->abort_loc))
+ if (setjmp(ctx->abort_loc)) {
+ ctx->flags &= ~E2F_FLAG_SETJMP_OK;
return (ctx->flags & E2F_FLAG_RUN_RETURN);
return (ctx->flags & E2F_FLAG_RUN_RETURN);
+ }
ctx->flags |= E2F_FLAG_SETJMP_OK;
#endif
ctx->flags |= E2F_FLAG_SETJMP_OK;
#endif
@@
-187,9
+200,3
@@
int e2fsck_run(e2fsck_t ctx)
return (ctx->flags & E2F_FLAG_RUN_RETURN);
return 0;
}
return (ctx->flags & E2F_FLAG_RUN_RETURN);
return 0;
}
-
-
-
-
-
-