Lines Matching refs:sb
46 read_inode_bitmap(struct super_block * sb, unsigned long block_group) in read_inode_bitmap() argument
51 desc = ext2_get_group_desc(sb, block_group, NULL); in read_inode_bitmap()
55 bh = sb_bread(sb, le32_to_cpu(desc->bg_inode_bitmap)); in read_inode_bitmap()
57 ext2_error(sb, "read_inode_bitmap", in read_inode_bitmap()
65 static void ext2_release_inode(struct super_block *sb, int group, int dir) in ext2_release_inode() argument
70 desc = ext2_get_group_desc(sb, group, &bh); in ext2_release_inode()
72 ext2_error(sb, "ext2_release_inode", in ext2_release_inode()
77 spin_lock(sb_bgl_lock(EXT2_SB(sb), group)); in ext2_release_inode()
81 spin_unlock(sb_bgl_lock(EXT2_SB(sb), group)); in ext2_release_inode()
83 percpu_counter_dec(&EXT2_SB(sb)->s_dirs_counter); in ext2_release_inode()
105 struct super_block * sb = inode->i_sb; in ext2_free_inode() local
124 es = EXT2_SB(sb)->s_es; in ext2_free_inode()
127 if (ino < EXT2_FIRST_INO(sb) || in ext2_free_inode()
129 ext2_error (sb, "ext2_free_inode", in ext2_free_inode()
133 block_group = (ino - 1) / EXT2_INODES_PER_GROUP(sb); in ext2_free_inode()
134 bit = (ino - 1) % EXT2_INODES_PER_GROUP(sb); in ext2_free_inode()
135 bitmap_bh = read_inode_bitmap(sb, block_group); in ext2_free_inode()
140 if (!ext2_clear_bit_atomic(sb_bgl_lock(EXT2_SB(sb), block_group), in ext2_free_inode()
142 ext2_error (sb, "ext2_free_inode", in ext2_free_inode()
145 ext2_release_inode(sb, block_group, is_directory); in ext2_free_inode()
147 if (sb->s_flags & MS_SYNCHRONOUS) in ext2_free_inode()
204 static int find_group_dir(struct super_block *sb, struct inode *parent) in find_group_dir() argument
206 int ngroups = EXT2_SB(sb)->s_groups_count; in find_group_dir()
207 int avefreei = ext2_count_free_inodes(sb) / ngroups; in find_group_dir()
212 desc = ext2_get_group_desc (sb, group, NULL); in find_group_dir()
258 static int find_group_orlov(struct super_block *sb, struct inode *parent) in find_group_orlov() argument
261 struct ext2_sb_info *sbi = EXT2_SB(sb); in find_group_orlov()
264 int inodes_per_group = EXT2_INODES_PER_GROUP(sb); in find_group_orlov()
281 if ((parent == d_inode(sb->s_root)) || in find_group_orlov()
291 desc = ext2_get_group_desc (sb, group, NULL); in find_group_orlov()
319 min_blocks = avefreeb - EXT2_BLOCKS_PER_GROUP(sb) / 4; in find_group_orlov()
321 max_debt = EXT2_BLOCKS_PER_GROUP(sb) / max(blocks_per_dir, BLOCK_COST); in find_group_orlov()
331 desc = ext2_get_group_desc (sb, group, NULL); in find_group_orlov()
348 desc = ext2_get_group_desc (sb, group, NULL); in find_group_orlov()
370 static int find_group_other(struct super_block *sb, struct inode *parent) in find_group_other() argument
373 int ngroups = EXT2_SB(sb)->s_groups_count; in find_group_other()
381 desc = ext2_get_group_desc (sb, group, NULL); in find_group_other()
405 desc = ext2_get_group_desc (sb, group, NULL); in find_group_other()
419 desc = ext2_get_group_desc (sb, group, NULL); in find_group_other()
433 struct super_block *sb; in ext2_new_inode() local
445 sb = dir->i_sb; in ext2_new_inode()
446 inode = new_inode(sb); in ext2_new_inode()
451 sbi = EXT2_SB(sb); in ext2_new_inode()
454 if (test_opt(sb, OLDALLOC)) in ext2_new_inode()
455 group = find_group_dir(sb, dir); in ext2_new_inode()
457 group = find_group_orlov(sb, dir); in ext2_new_inode()
459 group = find_group_other(sb, dir); in ext2_new_inode()
467 gdp = ext2_get_group_desc(sb, group, &bh2); in ext2_new_inode()
469 bitmap_bh = read_inode_bitmap(sb, group); in ext2_new_inode()
478 EXT2_INODES_PER_GROUP(sb), ino); in ext2_new_inode()
479 if (ino >= EXT2_INODES_PER_GROUP(sb)) { in ext2_new_inode()
495 if (++ino >= EXT2_INODES_PER_GROUP(sb)) { in ext2_new_inode()
514 if (sb->s_flags & MS_SYNCHRONOUS) in ext2_new_inode()
518 ino += group * EXT2_INODES_PER_GROUP(sb) + 1; in ext2_new_inode()
519 if (ino < EXT2_FIRST_INO(sb) || ino > le32_to_cpu(es->s_inodes_count)) { in ext2_new_inode()
520 ext2_error (sb, "ext2_new_inode", in ext2_new_inode()
545 if (test_opt(sb, GRPID)) { in ext2_new_inode()
573 ext2_error(sb, "ext2_new_inode", in ext2_new_inode()
615 unsigned long ext2_count_free_inodes (struct super_block * sb) in ext2_count_free_inodes() argument
626 es = EXT2_SB(sb)->s_es; in ext2_count_free_inodes()
627 for (i = 0; i < EXT2_SB(sb)->s_groups_count; i++) { in ext2_count_free_inodes()
630 desc = ext2_get_group_desc (sb, i, NULL); in ext2_count_free_inodes()
635 bitmap_bh = read_inode_bitmap(sb, i); in ext2_count_free_inodes()
639 x = ext2_count_free(bitmap_bh, EXT2_INODES_PER_GROUP(sb) / 8); in ext2_count_free_inodes()
647 percpu_counter_read(&EXT2_SB(sb)->s_freeinodes_counter), in ext2_count_free_inodes()
651 for (i = 0; i < EXT2_SB(sb)->s_groups_count; i++) { in ext2_count_free_inodes()
652 desc = ext2_get_group_desc (sb, i, NULL); in ext2_count_free_inodes()
662 unsigned long ext2_count_dirs (struct super_block * sb) in ext2_count_dirs() argument
667 for (i = 0; i < EXT2_SB(sb)->s_groups_count; i++) { in ext2_count_dirs()
668 struct ext2_group_desc *gdp = ext2_get_group_desc (sb, i, NULL); in ext2_count_dirs()