Home | History | Annotate | Download | only in e2fsck

Lines Matching full:ino

45 static int check_directory(e2fsck_t ctx, ext2_ino_t ino,
47 static void fix_dotdot(e2fsck_t ctx, ext2_ino_t ino, ext2_ino_t parent);
113 if (ext2fs_test_inode_bitmap(ctx->inode_dir_map, dir->ino))
114 if (check_directory(ctx, dir->ino, &pctx))
276 ext2_ino_t ino = dir, parent;
290 if (ext2fs_mark_inode_bitmap(inode_done_map, ino))
293 if (e2fsck_dir_info_get_parent(ctx, ino, &parent)) {
307 pctx->ino = ino;
309 if (e2fsck_reconnect_file(ctx, pctx->ino))
312 fix_dotdot(ctx, pctx->ino,
319 ino = parent;
321 ext2fs_mark_inode_bitmap(inode_loop_detect, ino);
342 ino = dir;
350 pctx->ino = dir;
370 ext2_ino_t ino;
384 sizeof(name)-1, 0, &ino);
388 if (ext2fs_test_inode_bitmap(ctx->inode_dir_map, ino)) {
389 ctx->lost_and_found = ino;
390 return ino;
396 pctx.ino = ino;
401 pctx.errcode = ext2fs_unlink(fs, EXT2_ROOT_INO, name, ino, 0);
407 (void) e2fsck_dir_info_set_parent(ctx, ino, 0);
408 e2fsck_adjust_inode_count(ctx, ino, -1);
438 ctx->inode_used_map, &ino);
444 ext2fs_mark_inode_bitmap(ctx->inode_used_map, ino);
445 ext2fs_mark_inode_bitmap(ctx->inode_dir_map, ino);
446 ext2fs_inode_alloc_stats2(fs, ino, +1, 1);
451 retval = ext2fs_new_dir_block(fs, ino, EXT2_ROOT_INO, &block);
480 pctx.errcode = ext2fs_write_new_inode(fs, ino, &inode);
489 pctx.errcode = ext2fs_link(fs, EXT2_ROOT_INO, name, ino, EXT2_FT_DIR);
499 e2fsck_add_dir_info(ctx, ino, EXT2_ROOT_INO);
501 ext2fs_icount_store(ctx->inode_count, ino, 2);
502 ext2fs_icount_store(ctx->inode_link_info, ino, 2);
503 ctx->lost_and_found = ino;
505 printf("/lost+found created; inode #%lu\n", ino);
507 return ino;
513 int e2fsck_reconnect_file(e2fsck_t ctx, ext2_ino_t ino)
523 pctx.ino = ino;
534 sprintf(name, "#%u", ino);
535 if (ext2fs_read_inode(fs, ino, &inode) == 0)
537 retval = ext2fs_link(fs, ctx->lost_and_found, name, ino, file_type);
549 ino, file_type);
556 e2fsck_adjust_inode_count(ctx, ino, 1);
564 errcode_t e2fsck_adjust_inode_count(e2fsck_t ctx, ext2_ino_t ino, int adj)
570 if (!ino)
573 retval = ext2fs_read_inode(fs, ino, &inode);
578 printf("Adjusting link count for inode %lu by %d (from %d)\n", ino, adj,
583 ext2fs_icount_increment(ctx->inode_count, ino, 0);
586 ext2fs_icount_increment(ctx->inode_link_info, ino, 0);
589 ext2fs_icount_decrement(ctx->inode_count, ino, 0);
592 ext2fs_icount_decrement(ctx->inode_link_info, ino, 0);
596 retval = ext2fs_write_inode(fs, ino, &inode);
652 static void fix_dotdot(e2fsck_t ctx, ext2_ino_t ino, ext2_ino_t parent)
665 printf("Fixing '..' of inode %lu to be %lu...\n", ino, parent);
669 pctx.ino = ino;
670 retval = ext2fs_dir_iterate(fs, ino, DIRENT_FLAG_INCLUDE_EMPTY,
678 (void) e2fsck_dir_info_set_dotdot(ctx, ino, parent);
679 if (e2fsck_dir_info_set_parent(ctx, ino, ctx->lost_and_found))