Lines Matching refs:ctx
26 static int disconnect_inode(e2fsck_t ctx, ext2_ino_t i)
28 ext2_filsys fs = ctx->fs;
32 e2fsck_read_inode(ctx, i, &inode, "pass4: disconnect_inode");
45 if (fix_problem(ctx, PR_4_ZERO_LEN_INODE, &pctx)) {
46 ext2fs_icount_store(ctx->inode_link_info, i, 0);
48 inode.i_dtime = ctx->now;
49 e2fsck_write_inode(ctx, i, &inode,
54 e2fsck_read_bitmaps(ctx);
55 ext2fs_unmark_inode_bitmap(ctx->inode_used_map, i);
56 ext2fs_unmark_inode_bitmap(ctx->inode_dir_map, i);
66 if (fix_problem(ctx, PR_4_UNATTACHED_INODE, &pctx)) {
67 if (e2fsck_reconnect_file(ctx, i))
82 void e2fsck_pass4(e2fsck_t ctx)
84 ext2_filsys fs = ctx->fs;
105 if (!(ctx->options & E2F_OPT_PREEN))
106 fix_problem(ctx, PR_4_PASS_HEADER, &pctx);
110 if (ctx->progress)
111 if ((ctx->progress)(ctx, 4, 0, maxgroup))
116 if (ctx->flags & E2F_FLAG_SIGNAL_MASK)
120 if (ctx->progress)
121 if ((ctx->progress)(ctx, 4, group, maxgroup))
127 if (!(ext2fs_test_inode_bitmap(ctx->inode_used_map, i)) ||
128 (ctx->inode_imagic_map &&
129 ext2fs_test_inode_bitmap(ctx->inode_imagic_map, i)) ||
130 (ctx->inode_bb_map &&
131 ext2fs_test_inode_bitmap(ctx->inode_bb_map, i)))
133 ext2fs_icount_fetch(ctx->inode_link_info, i, &link_count);
134 ext2fs_icount_fetch(ctx->inode_count, i, &link_counted);
137 buf = e2fsck_allocate_memory(ctx,
139 if (e2fsck_process_bad_inode(ctx, 0, i, buf))
141 if (disconnect_inode(ctx, i))
143 ext2fs_icount_fetch(ctx->inode_link_info, i,
145 ext2fs_icount_fetch(ctx->inode_count, i,
149 e2fsck_read_inode(ctx, i, &inode, "pass4");
154 fix_problem(ctx,
158 if (fix_problem(ctx, PR_4_BAD_REF_COUNT, &pctx)) {
160 e2fsck_write_inode(ctx, i, &inode, "pass4");
164 ext2fs_free_icount(ctx->inode_link_info); ctx->inode_link_info = 0;
165 ext2fs_free_icount(ctx->inode_count); ctx->inode_count = 0;
166 ext2fs_free_inode_bitmap(ctx->inode_bb_map);
167 ctx->inode_bb_map = 0;
168 ext2fs_free_inode_bitmap(ctx->inode_imagic_map);
169 ctx->inode_imagic_map = 0;
174 if (ctx->options & E2F_OPT_TIME2) {
175 e2fsck_clear_progbar(ctx);