Lines Matching refs:sb
34 static int read_block_bitmap(struct super_block *sb, in read_block_bitmap() argument
43 loc.partitionReferenceNum = UDF_SB(sb)->s_partition; in read_block_bitmap()
45 bh = udf_tread(sb, udf_get_lb_pblock(sb, &loc, block)); in read_block_bitmap()
53 static int __load_block_bitmap(struct super_block *sb, in __load_block_bitmap() argument
68 retval = read_block_bitmap(sb, bitmap, block_group, block_group); in __load_block_bitmap()
75 static inline int load_block_bitmap(struct super_block *sb, in load_block_bitmap() argument
81 slot = __load_block_bitmap(sb, bitmap, block_group); in load_block_bitmap()
92 static void udf_add_free_space(struct super_block *sb, u16 partition, u32 cnt) in udf_add_free_space() argument
94 struct udf_sb_info *sbi = UDF_SB(sb); in udf_add_free_space()
102 udf_updated_lvid(sb); in udf_add_free_space()
105 static void udf_bitmap_free_blocks(struct super_block *sb, in udf_bitmap_free_blocks() argument
111 struct udf_sb_info *sbi = UDF_SB(sb); in udf_bitmap_free_blocks()
137 block_group = block >> (sb->s_blocksize_bits + 3); in udf_bitmap_free_blocks()
138 bit = block % (sb->s_blocksize << 3); in udf_bitmap_free_blocks()
143 if (bit + count > (sb->s_blocksize << 3)) { in udf_bitmap_free_blocks()
144 overflow = bit + count - (sb->s_blocksize << 3); in udf_bitmap_free_blocks()
147 bitmap_nr = load_block_bitmap(sb, bitmap, block_group); in udf_bitmap_free_blocks()
159 udf_add_free_space(sb, sbi->s_partition, count); in udf_bitmap_free_blocks()
171 static int udf_bitmap_prealloc_blocks(struct super_block *sb, in udf_bitmap_prealloc_blocks() argument
176 struct udf_sb_info *sbi = UDF_SB(sb); in udf_bitmap_prealloc_blocks()
192 nr_groups = udf_compute_nr_groups(sb, partition); in udf_bitmap_prealloc_blocks()
194 block_group = block >> (sb->s_blocksize_bits + 3); in udf_bitmap_prealloc_blocks()
197 bitmap_nr = load_block_bitmap(sb, bitmap, block_group); in udf_bitmap_prealloc_blocks()
202 bit = block % (sb->s_blocksize << 3); in udf_bitmap_prealloc_blocks()
204 while (bit < (sb->s_blocksize << 3) && block_count > 0) { in udf_bitmap_prealloc_blocks()
216 udf_add_free_space(sb, partition, -alloc_count); in udf_bitmap_prealloc_blocks()
221 static int udf_bitmap_new_block(struct super_block *sb, in udf_bitmap_new_block() argument
225 struct udf_sb_info *sbi = UDF_SB(sb); in udf_bitmap_new_block()
241 block_group = block >> (sb->s_blocksize_bits + 3); in udf_bitmap_new_block()
244 bitmap_nr = load_block_bitmap(sb, bitmap, block_group); in udf_bitmap_new_block()
249 sb->s_blocksize - group_start); in udf_bitmap_new_block()
251 if ((ptr - ((char *)bh->b_data)) < sb->s_blocksize) { in udf_bitmap_new_block()
252 bit = block % (sb->s_blocksize << 3); in udf_bitmap_new_block()
262 sb->s_blocksize - ((bit + 7) >> 3)); in udf_bitmap_new_block()
264 if (newbit < sb->s_blocksize << 3) { in udf_bitmap_new_block()
270 sb->s_blocksize << 3, bit); in udf_bitmap_new_block()
271 if (newbit < sb->s_blocksize << 3) { in udf_bitmap_new_block()
283 bitmap_nr = load_block_bitmap(sb, bitmap, block_group); in udf_bitmap_new_block()
289 sb->s_blocksize - group_start); in udf_bitmap_new_block()
290 if ((ptr - ((char *)bh->b_data)) < sb->s_blocksize) { in udf_bitmap_new_block()
296 sb->s_blocksize << 3, in udf_bitmap_new_block()
298 if (bit < sb->s_blocksize << 3) in udf_bitmap_new_block()
306 if (bit < sb->s_blocksize << 3) in udf_bitmap_new_block()
309 bit = udf_find_next_one_bit(bh->b_data, sb->s_blocksize << 3, in udf_bitmap_new_block()
311 if (bit >= sb->s_blocksize << 3) { in udf_bitmap_new_block()
325 newblock = bit + (block_group << (sb->s_blocksize_bits + 3)) - in udf_bitmap_new_block()
335 udf_add_free_space(sb, partition, -1); in udf_bitmap_new_block()
346 static void udf_table_free_blocks(struct super_block *sb, in udf_table_free_blocks() argument
352 struct udf_sb_info *sbi = UDF_SB(sb); in udf_table_free_blocks()
373 udf_add_free_space(sb, sbi->s_partition, count); in udf_table_free_blocks()
386 (elen >> sb->s_blocksize_bits)) == start)) { in udf_table_free_blocks()
388 (count << sb->s_blocksize_bits)) { in udf_table_free_blocks()
390 sb->s_blocksize_bits); in udf_table_free_blocks()
394 (0x40000000 - sb->s_blocksize); in udf_table_free_blocks()
398 (count << sb->s_blocksize_bits)); in udf_table_free_blocks()
405 (count << sb->s_blocksize_bits)) { in udf_table_free_blocks()
407 sb->s_blocksize_bits); in udf_table_free_blocks()
412 (0x40000000 - sb->s_blocksize); in udf_table_free_blocks()
417 (count << sb->s_blocksize_bits)); in udf_table_free_blocks()
456 (count << sb->s_blocksize_bits); in udf_table_free_blocks()
468 if (epos.offset + (2 * adsize) > sb->s_blocksize) { in udf_table_free_blocks()
478 elen -= sb->s_blocksize; in udf_table_free_blocks()
480 epos.bh = udf_tread(sb, in udf_table_free_blocks()
481 udf_get_lb_pblock(sb, &epos.block, 0)); in udf_table_free_blocks()
489 if (epos.offset + adsize > sb->s_blocksize) { in udf_table_free_blocks()
530 sb->s_blocksize); in udf_table_free_blocks()
538 sb->s_blocksize); in udf_table_free_blocks()
575 static int udf_table_prealloc_blocks(struct super_block *sb, in udf_table_prealloc_blocks() argument
579 struct udf_sb_info *sbi = UDF_SB(sb); in udf_table_prealloc_blocks()
614 alloc_count = (elen >> sb->s_blocksize_bits); in udf_table_prealloc_blocks()
618 elen -= (alloc_count << sb->s_blocksize_bits); in udf_table_prealloc_blocks()
631 udf_add_free_space(sb, partition, -alloc_count); in udf_table_prealloc_blocks()
636 static int udf_table_new_block(struct super_block *sb, in udf_table_new_block() argument
640 struct udf_sb_info *sbi = UDF_SB(sb); in udf_table_new_block()
675 (elen >> sb->s_blocksize_bits)) in udf_table_new_block()
679 (elen >> sb->s_blocksize_bits); in udf_table_new_block()
713 goal_elen -= sb->s_blocksize; in udf_table_new_block()
721 udf_add_free_space(sb, partition, -1); in udf_table_new_block()
728 void udf_free_blocks(struct super_block *sb, struct inode *inode, in udf_free_blocks() argument
733 struct udf_part_map *map = &UDF_SB(sb)->s_partmaps[partition]; in udf_free_blocks()
736 udf_bitmap_free_blocks(sb, map->s_uspace.s_bitmap, in udf_free_blocks()
739 udf_table_free_blocks(sb, map->s_uspace.s_table, in udf_free_blocks()
742 udf_bitmap_free_blocks(sb, map->s_fspace.s_bitmap, in udf_free_blocks()
745 udf_table_free_blocks(sb, map->s_fspace.s_table, in udf_free_blocks()
751 ((sector_t)count) << sb->s_blocksize_bits); in udf_free_blocks()
755 inline int udf_prealloc_blocks(struct super_block *sb, in udf_prealloc_blocks() argument
760 struct udf_part_map *map = &UDF_SB(sb)->s_partmaps[partition]; in udf_prealloc_blocks()
764 allocated = udf_bitmap_prealloc_blocks(sb, in udf_prealloc_blocks()
769 allocated = udf_table_prealloc_blocks(sb, in udf_prealloc_blocks()
774 allocated = udf_bitmap_prealloc_blocks(sb, in udf_prealloc_blocks()
779 allocated = udf_table_prealloc_blocks(sb, in udf_prealloc_blocks()
787 inode_add_bytes(inode, allocated << sb->s_blocksize_bits); in udf_prealloc_blocks()
791 inline int udf_new_block(struct super_block *sb, in udf_new_block() argument
795 struct udf_part_map *map = &UDF_SB(sb)->s_partmaps[partition]; in udf_new_block()
799 block = udf_bitmap_new_block(sb, in udf_new_block()
803 block = udf_table_new_block(sb, in udf_new_block()
807 block = udf_bitmap_new_block(sb, in udf_new_block()
811 block = udf_table_new_block(sb, in udf_new_block()
819 inode_add_bytes(inode, sb->s_blocksize); in udf_new_block()