• Home
  • Raw
  • Download

Lines Matching refs:sbi

40 	struct affs_sb_info *sbi = AFFS_SB(sb);  in affs_free_block()  local
48 if (block > sbi->s_partition_size) in affs_free_block()
51 blk = block - sbi->s_reserved; in affs_free_block()
52 bmap = blk / sbi->s_bmap_bits; in affs_free_block()
53 bit = blk % sbi->s_bmap_bits; in affs_free_block()
54 bm = &sbi->s_bitmap[bmap]; in affs_free_block()
56 mutex_lock(&sbi->s_bmlock); in affs_free_block()
58 bh = sbi->s_bmap_bh; in affs_free_block()
59 if (sbi->s_last_bmap != bmap) { in affs_free_block()
64 sbi->s_bmap_bh = bh; in affs_free_block()
65 sbi->s_last_bmap = bmap; in affs_free_block()
85 mutex_unlock(&sbi->s_bmlock); in affs_free_block()
90 mutex_unlock(&sbi->s_bmlock); in affs_free_block()
95 sbi->s_bmap_bh = NULL; in affs_free_block()
96 sbi->s_last_bmap = ~0; in affs_free_block()
97 mutex_unlock(&sbi->s_bmlock); in affs_free_block()
117 struct affs_sb_info *sbi; in affs_alloc_block() local
125 sbi = AFFS_SB(sb); in affs_alloc_block()
135 if (!goal || goal > sbi->s_partition_size) { in affs_alloc_block()
140 goal = sbi->s_reserved; in affs_alloc_block()
143 blk = goal - sbi->s_reserved; in affs_alloc_block()
144 bmap = blk / sbi->s_bmap_bits; in affs_alloc_block()
145 bm = &sbi->s_bitmap[bmap]; in affs_alloc_block()
147 mutex_lock(&sbi->s_bmlock); in affs_alloc_block()
154 i = sbi->s_bmap_count; in affs_alloc_block()
160 if (bmap < sbi->s_bmap_count) in affs_alloc_block()
164 bm = sbi->s_bitmap; in affs_alloc_block()
166 blk = bmap * sbi->s_bmap_bits; in affs_alloc_block()
170 bh = sbi->s_bmap_bh; in affs_alloc_block()
171 if (sbi->s_last_bmap != bmap) { in affs_alloc_block()
176 sbi->s_bmap_bh = bh; in affs_alloc_block()
177 sbi->s_last_bmap = bmap; in affs_alloc_block()
181 bit = blk % sbi->s_bmap_bits; in affs_alloc_block()
206 blk += bit + sbi->s_reserved; in affs_alloc_block()
228 mutex_unlock(&sbi->s_bmlock); in affs_alloc_block()
235 sbi->s_bmap_bh = NULL; in affs_alloc_block()
236 sbi->s_last_bmap = ~0; in affs_alloc_block()
238 mutex_unlock(&sbi->s_bmlock); in affs_alloc_block()
250 struct affs_sb_info *sbi = AFFS_SB(sb); in affs_init_bitmap() local
255 if (!AFFS_ROOT_TAIL(sb, sbi->s_root_bh)->bm_flag) { in affs_init_bitmap()
261 sbi->s_last_bmap = ~0; in affs_init_bitmap()
262 sbi->s_bmap_bh = NULL; in affs_init_bitmap()
263 sbi->s_bmap_bits = sb->s_blocksize * 8 - 32; in affs_init_bitmap()
264 sbi->s_bmap_count = (sbi->s_partition_size - sbi->s_reserved + in affs_init_bitmap()
265 sbi->s_bmap_bits - 1) / sbi->s_bmap_bits; in affs_init_bitmap()
266 size = sbi->s_bmap_count * sizeof(*bm); in affs_init_bitmap()
267 bm = sbi->s_bitmap = kzalloc(size, GFP_KERNEL); in affs_init_bitmap()
268 if (!sbi->s_bitmap) { in affs_init_bitmap()
273 bmap_blk = (__be32 *)sbi->s_root_bh->b_data; in affs_init_bitmap()
277 for (i = sbi->s_bmap_count; i > 0; bm++, i--) { in affs_init_bitmap()
314 offset = (sbi->s_partition_size - sbi->s_reserved) % sbi->s_bmap_bits; in affs_init_bitmap()
354 struct affs_sb_info *sbi = AFFS_SB(sb); in affs_free_bitmap() local
356 if (!sbi->s_bitmap) in affs_free_bitmap()
359 affs_brelse(sbi->s_bmap_bh); in affs_free_bitmap()
360 sbi->s_bmap_bh = NULL; in affs_free_bitmap()
361 sbi->s_last_bmap = ~0; in affs_free_bitmap()
362 kfree(sbi->s_bitmap); in affs_free_bitmap()
363 sbi->s_bitmap = NULL; in affs_free_bitmap()