Lines Matching refs:sb

47 read_inode_bitmap(struct super_block * sb, unsigned long block_group)  in read_inode_bitmap()  argument
52 desc = ext2_get_group_desc(sb, block_group, NULL); in read_inode_bitmap()
56 bh = sb_bread(sb, le32_to_cpu(desc->bg_inode_bitmap)); in read_inode_bitmap()
58 ext2_error(sb, "read_inode_bitmap", in read_inode_bitmap()
66 static void ext2_release_inode(struct super_block *sb, int group, int dir) in ext2_release_inode() argument
71 desc = ext2_get_group_desc(sb, group, &bh); in ext2_release_inode()
73 ext2_error(sb, "ext2_release_inode", in ext2_release_inode()
78 spin_lock(sb_bgl_lock(EXT2_SB(sb), group)); in ext2_release_inode()
82 spin_unlock(sb_bgl_lock(EXT2_SB(sb), group)); in ext2_release_inode()
83 percpu_counter_inc(&EXT2_SB(sb)->s_freeinodes_counter); in ext2_release_inode()
85 percpu_counter_dec(&EXT2_SB(sb)->s_dirs_counter); in ext2_release_inode()
107 struct super_block * sb = inode->i_sb; in ext2_free_inode() local
126 es = EXT2_SB(sb)->s_es; in ext2_free_inode()
129 if (ino < EXT2_FIRST_INO(sb) || in ext2_free_inode()
131 ext2_error (sb, "ext2_free_inode", in ext2_free_inode()
135 block_group = (ino - 1) / EXT2_INODES_PER_GROUP(sb); in ext2_free_inode()
136 bit = (ino - 1) % EXT2_INODES_PER_GROUP(sb); in ext2_free_inode()
137 bitmap_bh = read_inode_bitmap(sb, block_group); in ext2_free_inode()
142 if (!ext2_clear_bit_atomic(sb_bgl_lock(EXT2_SB(sb), block_group), in ext2_free_inode()
144 ext2_error (sb, "ext2_free_inode", in ext2_free_inode()
147 ext2_release_inode(sb, block_group, is_directory); in ext2_free_inode()
149 if (sb->s_flags & SB_SYNCHRONOUS) in ext2_free_inode()
199 static int find_group_dir(struct super_block *sb, struct inode *parent) in find_group_dir() argument
201 int ngroups = EXT2_SB(sb)->s_groups_count; in find_group_dir()
202 int avefreei = ext2_count_free_inodes(sb) / ngroups; in find_group_dir()
207 desc = ext2_get_group_desc (sb, group, NULL); in find_group_dir()
251 static int find_group_orlov(struct super_block *sb, struct inode *parent) in find_group_orlov() argument
254 struct ext2_sb_info *sbi = EXT2_SB(sb); in find_group_orlov()
257 int inodes_per_group = EXT2_INODES_PER_GROUP(sb); in find_group_orlov()
274 if ((parent == d_inode(sb->s_root)) || in find_group_orlov()
282 desc = ext2_get_group_desc (sb, group, NULL); in find_group_orlov()
308 min_blocks = avefreeb - EXT2_BLOCKS_PER_GROUP(sb) / 4; in find_group_orlov()
310 max_debt = EXT2_BLOCKS_PER_GROUP(sb) / max(blocks_per_dir, BLOCK_COST); in find_group_orlov()
320 desc = ext2_get_group_desc (sb, group, NULL); in find_group_orlov()
337 desc = ext2_get_group_desc (sb, group, NULL); in find_group_orlov()
359 static int find_group_other(struct super_block *sb, struct inode *parent) in find_group_other() argument
362 int ngroups = EXT2_SB(sb)->s_groups_count; in find_group_other()
370 desc = ext2_get_group_desc (sb, group, NULL); in find_group_other()
394 desc = ext2_get_group_desc (sb, group, NULL); in find_group_other()
408 desc = ext2_get_group_desc (sb, group, NULL); in find_group_other()
422 struct super_block *sb; in ext2_new_inode() local
434 sb = dir->i_sb; in ext2_new_inode()
435 inode = new_inode(sb); in ext2_new_inode()
440 sbi = EXT2_SB(sb); in ext2_new_inode()
443 if (test_opt(sb, OLDALLOC)) in ext2_new_inode()
444 group = find_group_dir(sb, dir); in ext2_new_inode()
446 group = find_group_orlov(sb, dir); in ext2_new_inode()
448 group = find_group_other(sb, dir); in ext2_new_inode()
456 gdp = ext2_get_group_desc(sb, group, &bh2); in ext2_new_inode()
463 bitmap_bh = read_inode_bitmap(sb, group); in ext2_new_inode()
472 EXT2_INODES_PER_GROUP(sb), ino); in ext2_new_inode()
473 if (ino >= EXT2_INODES_PER_GROUP(sb)) { in ext2_new_inode()
489 if (++ino >= EXT2_INODES_PER_GROUP(sb)) { in ext2_new_inode()
509 if (sb->s_flags & SB_SYNCHRONOUS) in ext2_new_inode()
513 ino += group * EXT2_INODES_PER_GROUP(sb) + 1; in ext2_new_inode()
514 if (ino < EXT2_FIRST_INO(sb) || ino > le32_to_cpu(es->s_inodes_count)) { in ext2_new_inode()
515 ext2_error (sb, "ext2_new_inode", in ext2_new_inode()
540 if (test_opt(sb, GRPID)) { in ext2_new_inode()
568 ext2_error(sb, "ext2_new_inode", in ext2_new_inode()
612 unsigned long ext2_count_free_inodes (struct super_block * sb) in ext2_count_free_inodes() argument
623 es = EXT2_SB(sb)->s_es; in ext2_count_free_inodes()
624 for (i = 0; i < EXT2_SB(sb)->s_groups_count; i++) { in ext2_count_free_inodes()
627 desc = ext2_get_group_desc (sb, i, NULL); in ext2_count_free_inodes()
632 bitmap_bh = read_inode_bitmap(sb, i); in ext2_count_free_inodes()
636 x = ext2_count_free(bitmap_bh, EXT2_INODES_PER_GROUP(sb) / 8); in ext2_count_free_inodes()
644 percpu_counter_read(&EXT2_SB(sb)->s_freeinodes_counter), in ext2_count_free_inodes()
648 for (i = 0; i < EXT2_SB(sb)->s_groups_count; i++) { in ext2_count_free_inodes()
649 desc = ext2_get_group_desc (sb, i, NULL); in ext2_count_free_inodes()
659 unsigned long ext2_count_dirs (struct super_block * sb) in ext2_count_dirs() argument
664 for (i = 0; i < EXT2_SB(sb)->s_groups_count; i++) { in ext2_count_dirs()
665 struct ext2_group_desc *gdp = ext2_get_group_desc (sb, i, NULL); in ext2_count_dirs()