Lines Matching refs:fs
63 static int check_dir_block(ext2_filsys fs,
69 static int update_dir_block(ext2_filsys fs,
89 struct ext2_super_block *sb = ctx->fs->super;
91 ext2_filsys fs = ctx->fs;
122 cd.pctx.errcode = ext2fs_create_icount2(fs,
131 buf = (char *) e2fsck_allocate_memory(ctx, 2*fs->blocksize,
144 cd.max = ext2fs_dblist_count(fs->dblist);
149 if (fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_DIR_INDEX)
150 ext2fs_dblist_sort(fs->dblist, special_dir_block_cmp);
152 cd.pctx.errcode = ext2fs_dblist_iterate(fs->dblist, check_dir_block,
252 ext2fs_free_dblist(fs->dblist);
270 fs->flags &= ~EXT2_FLAG_MASTER_SB_ONLY;
271 ext2fs_mark_super_dirty(fs);
275 ext2fs_update_dynamic_rev(fs);
276 ext2fs_mark_super_dirty(fs);
488 if (!(ctx->fs->super->s_feature_incompat &
524 static void parse_int_node(ext2_filsys fs,
566 expect_limit = (fs->blocksize - ((char *) ent - block_buf)) /
640 static void salvage_directory(ext2_filsys fs,
646 int left = fs->blocksize - *offset - dirent->rec_len;
665 dirent->inode <= fs->super->s_inodes_count &&
676 (*offset + dirent->rec_len <= fs->blocksize)) {
688 prev->rec_len += fs->blocksize - *offset;
689 *offset = fs->blocksize;
691 dirent->rec_len = fs->blocksize - *offset;
697 static int check_dir_block(ext2_filsys fs,
771 cd->pctx.errcode = ext2fs_read_dir_block(fs, block_nr, buf);
780 memset(buf, 0, fs->blocksize);
817 (fs->super->s_flags & EXT2_FLAGS_UNSIGNED_HASH))
821 (dirent->rec_len == fs->blocksize) &&
824 ((fs->blocksize-8) /
838 if (((offset + dirent->rec_len) > fs->blocksize) ||
843 salvage_directory(fs, dirent, prev, &offset);
880 (dirent->inode < EXT2_FIRST_INODE(fs->super))) ||
881 (dirent->inode > fs->super->s_inodes_count)) {
939 ext2fs_unmark_valid(fs);
956 buf + fs->blocksize)) {
975 fs->super->s_hash_seed, &hash, 0);
1038 } while (offset < fs->blocksize);
1052 parse_int_node(fs, db, cd, dx_dir, buf);
1055 if (offset != fs->blocksize) {
1056 cd->pctx.num = dirent->rec_len - fs->blocksize + offset;
1063 cd->pctx.errcode = ext2fs_write_dir_block(fs, block_nr, buf);
1069 ext2fs_mark_changed(fs);
1083 static int deallocate_inode_block(ext2_filsys fs,
1094 if ((*block_nr < fs->super->s_first_data_block) ||
1095 (*block_nr >= fs->super->s_blocks_count))
1098 ext2fs_block_alloc_stats(fs, *block_nr, -1);
1107 ext2_filsys fs = ctx->fs;
1128 ext2fs_inode_alloc_stats2(fs, ino, -1, LINUX_S_ISDIR(inode.i_mode));
1131 (fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_EXT_ATTR)) {
1132 pctx.errcode = ext2fs_adjust_ea_refcount(fs, inode.i_file_acl,
1147 ext2fs_block_alloc_stats(fs, inode.i_file_acl, -1);
1159 pctx.errcode = ext2fs_block_iterate2(fs, ino, 0, block_buf,
1186 ext2_filsys fs = ctx->fs;
1202 !(fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_EXT_ATTR)) {
1216 && !e2fsck_pass1_check_device_inode(fs, &inode))
1219 && !e2fsck_pass1_check_device_inode(fs, &inode))
1222 && !e2fsck_pass1_check_device_inode(fs, &inode))
1225 && !e2fsck_pass1_check_device_inode(fs, &inode))
1228 && !e2fsck_pass1_check_symlink(fs, &inode, buf)) {
1251 switch (fs->super->s_creator_os) {
1282 if ((fs->super->s_creator_os == EXT2_OS_LINUX) &&
1283 !(fs->super->s_feature_ro_compat &
1294 ((inode.i_file_acl < fs->super->s_first_data_block) ||
1295 (inode.i_file_acl >= fs->super->s_blocks_count))) {
1330 ext2_filsys fs = ctx->fs;
1347 pctx->errcode = ext2fs_new_block(fs, 0, ctx->block_found_map, &blk);
1354 ext2fs_mark_block_bitmap(fs->block_map, blk);
1355 ext2fs_mark_bb_dirty(fs);
1361 pctx->errcode = ext2fs_new_dir_block(fs, 0, 0, &block);
1363 pctx->errcode = ext2fs_new_dir_block(fs, db->ino,
1372 pctx->errcode = ext2fs_write_dir_block(fs, blk, block);
1384 inode.i_blocks += fs->blocksize / 512;
1385 if (inode.i_size < (db->blockcnt+1) * fs->blocksize)
1386 inode.i_size = (db->blockcnt+1) * fs->blocksize;
1393 pctx->errcode = ext2fs_block_iterate2(fs, db->ino, BLOCK_FLAG_HOLE,
1407 static int update_dir_block(ext2_filsys fs EXT2FS_ATTR((unused)),