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;
99 init_resource_track(&rtrack, ctx->fs->io);
114 e2fsck_set_bitmap_type(fs, EXT2FS_BMAP64_RBTREE,
116 cd.pctx.errcode = ext2fs_create_icount2(fs,
120 fs->default_bitmap_type = save_type;
127 buf = (char *) e2fsck_allocate_memory(ctx, 2*fs->blocksize,
140 cd.max = ext2fs_dblist_count2(fs->dblist);
145 if (fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_DIR_INDEX)
146 ext2fs_dblist_sort2(fs->dblist, special_dir_block_cmp);
148 cd.pctx.errcode = ext2fs_dblist_iterate2(fs->dblist, check_dir_block,
254 ext2fs_free_dblist(fs->dblist);
276 fs->flags &= ~EXT2_FLAG_MASTER_SB_ONLY;
277 ext2fs_mark_super_dirty(fs);
281 ext2fs_update_dynamic_rev(fs);
282 ext2fs_mark_super_dirty(fs);
286 print_resource_track(ctx, _("Pass 2"), &rtrack, fs->io);
369 (void) ext2fs_get_rec_len(ctx->fs, dirent, &rec_len);
396 (void) ext2fs_set_rec_len(ctx->fs, new_len,
428 (void) ext2fs_get_rec_len(ctx->fs, dirent, &rec_len);
488 ext2fs_unmark_valid(ctx->fs);
505 if (!(ctx->fs->super->s_feature_incompat &
541 static void parse_int_node(ext2_filsys fs,
583 expect_limit = (fs->blocksize - ((char *) ent - block_buf)) /
657 static void salvage_directory(ext2_filsys fs,
667 (void) ext2fs_get_rec_len(fs, dirent, &rec_len);
668 left = fs->blocksize - *offset - rec_len;
687 dirent->inode <= fs->super->s_inodes_count &&
689 (void) ext2fs_set_rec_len(fs, (int) rec_len + left, dirent);
698 (*offset + rec_len <= fs->blocksize)) {
699 (void) ext2fs_get_rec_len(fs, prev, &prev_rec_len);
701 (void) ext2fs_set_rec_len(fs, prev_rec_len, prev);
712 (void) ext2fs_get_rec_len(fs, prev, &prev_rec_len);
713 prev_rec_len += fs->blocksize - *offset;
714 (void) ext2fs_set_rec_len(fs, prev_rec_len, prev);
715 *offset = fs->blocksize;
717 rec_len = fs->blocksize - *offset;
718 (void) ext2fs_set_rec_len(fs, rec_len, dirent);
724 static int check_dir_block(ext2_filsys fs,
799 cd->pctx.errcode = ext2fs_read_dir_block3(fs, block_nr, buf, 0);
808 memset(buf, 0, fs->blocksize);
830 (void) ext2fs_get_rec_len(fs, dirent, &rec_len);
846 (fs->super->s_flags & EXT2_FLAGS_UNSIGNED_HASH))
850 (rec_len == fs->blocksize) &&
853 ((fs->blocksize-8) /
871 (void) ext2fs_get_rec_len(fs, dirent, &rec_len);
874 if (((offset + rec_len) > fs->blocksize) ||
879 salvage_directory(fs, dirent, prev, &offset);
910 (dirent->inode < EXT2_FIRST_INODE(fs->super))) ||
911 (dirent->inode > fs->super->s_inodes_count)) {
963 ext2fs_unmark_valid(fs);
980 buf + fs->blocksize)) {
989 group = ext2fs_group_of_ino(fs, dirent->inode);
990 first_unused_inode = group * fs->super->s_inodes_per_group +
991 1 + fs->super->s_inodes_per_group -
992 ext2fs_bg_itable_unused(fs, group);
1003 if (ext2fs_bg_flags_test(fs, group, EXT2_BG_INODE_UNINIT)) {
1007 ext2fs_bg_flags_clear(fs, group,
1009 ext2fs_mark_super_dirty(fs);
1012 ext2fs_unmark_valid(fs);
1019 ext2fs_bg_itable_unused_set(fs, group, 0);
1020 ext2fs_mark_super_dirty(fs);
1023 ext2fs_unmark_valid(fs);
1048 ext2fs_unmark_valid(fs);
1070 fs->super->s_hash_seed, &hash, 0);
1132 (void) ext2fs_get_rec_len(fs, dirent, &rec_len);
1135 } while (offset < fs->blocksize);
1149 parse_int_node(fs, db, cd, dx_dir, buf);
1152 if (offset != fs->blocksize) {
1153 cd->pctx.num = rec_len - fs->blocksize + offset;
1160 cd->pctx.errcode = ext2fs_write_dir_block3(fs, block_nr, buf, 0);
1166 ext2fs_mark_changed(fs);
1185 static int deallocate_inode_block(ext2_filsys fs,
1196 if ((*block_nr < fs->super->s_first_data_block) ||
1197 (*block_nr >= ext2fs_blocks_count(fs->super)))
1200 ext2fs_block_alloc_stats2(fs, *block_nr, -1);
1210 ext2_filsys fs = ctx->fs;
1224 ext2fs_inode_alloc_stats2(fs, ino, -1, LINUX_S_ISDIR(inode.i_mode));
1226 if (ext2fs_file_acl_block(fs, &inode) &&
1227 (fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_EXT_ATTR)) {
1228 pctx.errcode = ext2fs_adjust_ea_refcount2(fs,
1229 ext2fs_file_acl_block(fs, &inode),
1236 pctx.blk = ext2fs_file_acl_block(fs, &inode);
1243 ext2fs_file_acl_block(fs, &inode));
1244 ext2fs_block_alloc_stats2(fs,
1245 ext2fs_file_acl_block(fs, &inode), -1);
1247 ext2fs_file_acl_block_set(fs, &inode, 0);
1250 if (!ext2fs_inode_has_valid_blocks2(fs, &inode))
1259 pctx.errcode = ext2fs_block_iterate3(fs, ino, 0, block_buf,
1291 ext2_filsys fs = ctx->fs;
1306 if (ext2fs_file_acl_block(fs, &inode) &&
1307 !(fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_EXT_ATTR)) {
1309 ext2fs_file_acl_block_set(fs, &inode, 0);
1321 && !e2fsck_pass1_check_device_inode(fs, &inode))
1324 && !e2fsck_pass1_check_device_inode(fs, &inode))
1327 && !e2fsck_pass1_check_device_inode(fs, &inode))
1330 && !e2fsck_pass1_check_device_inode(fs, &inode))
1333 && !e2fsck_pass1_check_symlink(fs, ino, &inode, buf)) {
1356 switch (fs->super->s_creator_os) {
1383 if ((fs->super->s_creator_os == EXT2_OS_LINUX) &&
1384 !(fs->super->s_feature_ro_compat &
1394 if (!(fs->super->s_feature_incompat &
1405 if (ext2fs_file_acl_block(fs, &inode) &&
1406 ((ext2fs_file_acl_block(fs, &inode) < fs->super->s_first_data_block) ||
1407 (ext2fs_file_acl_block(fs, &inode) >= ext2fs_blocks_count(fs->super)))) {
1409 ext2fs_file_acl_block_set(fs, &inode, 0);
1442 ext2_filsys fs = ctx->fs;
1459 pctx->errcode = ext2fs_new_block2(fs, 0, ctx->block_found_map, &blk);
1466 ext2fs_mark_block_bitmap2(fs->block_map, blk);
1467 ext2fs_mark_bb_dirty(fs);
1473 pctx->errcode = ext2fs_new_dir_block(fs, 0, 0, &block);
1475 pctx->errcode = ext2fs_new_dir_block(fs, db->ino,
1484 pctx->errcode = ext2fs_write_dir_block3(fs, blk, block, 0);
1496 ext2fs_iblk_add_blocks(fs, &inode, 1);
1497 if (inode.i_size < (db->blockcnt+1) * fs->blocksize)
1498 inode.i_size = (db->blockcnt+1) * fs->blocksize;
1505 pctx->errcode = ext2fs_bmap2(fs, db->ino, &inode, 0, BMAP_SET,