Home | History | Annotate | Download | only in e2fsck

Lines Matching refs:fs

63 static int check_dir_block(ext2_filsys fs,
83 struct ext2_super_block *sb = ctx->fs->super;
85 ext2_filsys fs = ctx->fs;
98 init_resource_track(&rtrack, ctx->fs->io);
113 cd.pctx.errcode = ext2fs_create_icount2(fs,
122 buf = (char *) e2fsck_allocate_memory(ctx, 2*fs->blocksize,
135 cd.max = ext2fs_dblist_count(fs->dblist);
140 if (fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_DIR_INDEX)
141 ext2fs_dblist_sort(fs->dblist, special_dir_block_cmp);
143 cd.pctx.errcode = ext2fs_dblist_iterate(fs->dblist, check_dir_block,
249 ext2fs_free_dblist(fs->dblist);
267 fs->flags &= ~EXT2_FLAG_MASTER_SB_ONLY;
268 ext2fs_mark_super_dirty(fs);
272 ext2fs_update_dynamic_rev(fs);
273 ext2fs_mark_super_dirty(fs);
277 print_resource_track(ctx, _("Pass 2"), &rtrack, fs->io);
360 (void) ext2fs_get_rec_len(ctx->fs, dirent, &rec_len);
387 (void) ext2fs_set_rec_len(ctx->fs, new_len,
418 (void) ext2fs_get_rec_len(ctx->fs, dirent, &rec_len);
483 if (!(ctx->fs->super->s_feature_incompat &
519 static void parse_int_node(ext2_filsys fs,
561 expect_limit = (fs->blocksize - ((char *) ent - block_buf)) /
635 static void salvage_directory(ext2_filsys fs,
645 (void) ext2fs_get_rec_len(fs, dirent, &rec_len);
646 left = fs->blocksize - *offset - rec_len;
665 dirent->inode <= fs->super->s_inodes_count &&
667 (void) ext2fs_set_rec_len(fs, (int) rec_len + left, dirent);
676 (*offset + rec_len <= fs->blocksize)) {
677 (void) ext2fs_get_rec_len(fs, prev, &prev_rec_len);
679 (void) ext2fs_set_rec_len(fs, prev_rec_len, prev);
690 (void) ext2fs_get_rec_len(fs, prev, &prev_rec_len);
691 prev_rec_len += fs->blocksize - *offset;
692 (void) ext2fs_set_rec_len(fs, prev_rec_len, prev);
693 *offset = fs->blocksize;
695 rec_len = fs->blocksize - *offset;
696 (void) ext2fs_set_rec_len(fs, rec_len, dirent);
702 static int check_dir_block(ext2_filsys fs,
777 cd->pctx.errcode = ext2fs_read_dir_block(fs, block_nr, buf);
786 memset(buf, 0, fs->blocksize);
808 (void) ext2fs_get_rec_len(fs, dirent, &rec_len);
824 (fs->super->s_flags & EXT2_FLAGS_UNSIGNED_HASH))
828 (rec_len == fs->blocksize) &&
831 ((fs->blocksize-8) /
846 (void) ext2fs_get_rec_len(fs, dirent, &rec_len);
849 if (((offset + rec_len) > fs->blocksize) ||
854 salvage_directory(fs, dirent, prev, &offset);
891 (dirent->inode < EXT2_FIRST_INODE(fs->super))) ||
892 (dirent->inode > fs->super->s_inodes_count)) {
944 ext2fs_unmark_valid(fs);
961 buf + fs->blocksize)) {
970 group = ext2fs_group_of_ino(fs, dirent->inode);
971 first_unused_inode = group * fs->super->s_inodes_per_group +
972 1 + fs->super->s_inodes_per_group -
973 fs->group_desc[group].bg_itable_unused;
984 if (fs->group_desc[group].bg_flags & EXT2_BG_INODE_UNINIT) {
988 fs->group_desc[group].bg_flags &=
990 ext2fs_mark_super_dirty(fs);
993 ext2fs_unmark_valid(fs);
1000 fs->group_desc[group].bg_itable_unused = 0;
1001 ext2fs_mark_super_dirty(fs);
1004 ext2fs_unmark_valid(fs);
1024 ext2fs_unmark_valid(fs);
1040 fs->super->s_hash_seed, &hash, 0);
1102 (void) ext2fs_get_rec_len(fs, dirent, &rec_len);
1105 } while (offset < fs->blocksize);
1119 parse_int_node(fs, db, cd, dx_dir, buf);
1122 if (offset != fs->blocksize) {
1123 cd->pctx.num = rec_len - fs->blocksize + offset;
1130 cd->pctx.errcode = ext2fs_write_dir_block(fs, block_nr, buf);
1136 ext2fs_mark_changed(fs);
1150 static int deallocate_inode_block(ext2_filsys fs,
1161 if ((*block_nr < fs->super->s_first_data_block) ||
1162 (*block_nr >= fs->super->s_blocks_count))
1165 ext2fs_block_alloc_stats(fs, *block_nr, -1);
1174 ext2_filsys fs = ctx->fs;
1188 ext2fs_inode_alloc_stats2(fs, ino, -1, LINUX_S_ISDIR(inode.i_mode));
1191 (fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_EXT_ATTR)) {
1192 pctx.errcode = ext2fs_adjust_ea_refcount(fs, inode.i_file_acl,
1207 ext2fs_block_alloc_stats(fs, inode.i_file_acl, -1);
1219 pctx.errcode = ext2fs_block_iterate2(fs, ino, 0, block_buf,
1246 ext2_filsys fs = ctx->fs;
1262 !(fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_EXT_ATTR)) {
1276 && !e2fsck_pass1_check_device_inode(fs, &inode))
1279 && !e2fsck_pass1_check_device_inode(fs, &inode))
1282 && !e2fsck_pass1_check_device_inode(fs, &inode))
1285 && !e2fsck_pass1_check_device_inode(fs, &inode))
1288 && !e2fsck_pass1_check_symlink(fs, ino, &inode, buf)) {
1311 switch (fs->super->s_creator_os) {
1338 if ((fs->super->s_creator_os == EXT2_OS_LINUX) &&
1339 !(fs->super->s_feature_ro_compat &
1349 if (!(fs->super->s_feature_incompat &
1361 ((inode.i_file_acl < fs->super->s_first_data_block) ||
1362 (inode.i_file_acl >= fs->super->s_blocks_count))) {
1397 ext2_filsys fs = ctx->fs;
1414 pctx->errcode = ext2fs_new_block(fs, 0, ctx->block_found_map, &blk);
1421 ext2fs_mark_block_bitmap(fs->block_map, blk);
1422 ext2fs_mark_bb_dirty(fs);
1428 pctx->errcode = ext2fs_new_dir_block(fs, 0, 0, &block);
1430 pctx->errcode = ext2fs_new_dir_block(fs, db->ino,
1439 pctx->errcode = ext2fs_write_dir_block(fs, blk, block);
1451 ext2fs_iblk_add_blocks(fs, &inode, 1);
1452 if (inode.i_size < (db->blockcnt+1) * fs->blocksize)
1453 inode.i_size = (db->blockcnt+1) * fs->blocksize;
1460 pctx->errcode = ext2fs_bmap(fs, db->ino, &inode, 0, BMAP_SET,