Lines Matching full:sbi

33 	struct exfat_sb_info *sbi = EXFAT_SB(sb);  in exfat_test_bitmap_range()  local
41 if (!is_valid_cluster(sbi, start) || !is_valid_cluster(sbi, end - 1)) in exfat_test_bitmap_range()
49 bitmap_le = (__le_long *)sbi->vol_amap[i]->b_data; in exfat_test_bitmap_range()
76 struct exfat_sb_info *sbi = EXFAT_SB(sb); in exfat_allocate_bitmap() local
83 sbi->map_clu = le32_to_cpu(ep->dentry.bitmap.start_clu); in exfat_allocate_bitmap()
85 need_map_size = ((EXFAT_DATA_CLUSTER_COUNT(sbi) - 1) / BITS_PER_BYTE) in exfat_allocate_bitmap()
97 sbi->map_sectors = ((need_map_size - 1) >> in exfat_allocate_bitmap()
99 sbi->vol_amap = kvmalloc_array(sbi->map_sectors, in exfat_allocate_bitmap()
101 if (!sbi->vol_amap) in exfat_allocate_bitmap()
104 sector = exfat_cluster_to_sector(sbi, sbi->map_clu); in exfat_allocate_bitmap()
107 for (i = 0; i < sbi->map_sectors; i++) { in exfat_allocate_bitmap()
111 for (j = i; j < min(max_ra_count, sbi->map_sectors - i) + i; j++) in exfat_allocate_bitmap()
116 sbi->vol_amap[i] = sb_bread(sb, sector + i); in exfat_allocate_bitmap()
117 if (!sbi->vol_amap[i]) in exfat_allocate_bitmap()
121 if (exfat_test_bitmap_range(sb, sbi->map_clu, in exfat_allocate_bitmap()
122 EXFAT_B_TO_CLU_ROUND_UP(map_size, sbi)) == false) in exfat_allocate_bitmap()
131 brelse(sbi->vol_amap[j++]); in exfat_allocate_bitmap()
133 kvfree(sbi->vol_amap); in exfat_allocate_bitmap()
134 sbi->vol_amap = NULL; in exfat_allocate_bitmap()
142 struct exfat_sb_info *sbi = EXFAT_SB(sb); in exfat_load_bitmap() local
144 exfat_chain_set(&clu, sbi->root_dir, 0, ALLOC_FAT_CHAIN); in exfat_load_bitmap()
146 for (i = 0; i < sbi->dentries_per_clu; i++) { in exfat_load_bitmap()
176 void exfat_free_bitmap(struct exfat_sb_info *sbi) in exfat_free_bitmap() argument
180 for (i = 0; i < sbi->map_sectors; i++) in exfat_free_bitmap()
181 __brelse(sbi->vol_amap[i]); in exfat_free_bitmap()
183 kvfree(sbi->vol_amap); in exfat_free_bitmap()
191 struct exfat_sb_info *sbi = EXFAT_SB(sb); in exfat_set_bitmap() local
193 if (!is_valid_cluster(sbi, clu)) in exfat_set_bitmap()
200 set_bit_le(b, sbi->vol_amap[i]->b_data); in exfat_set_bitmap()
201 exfat_update_bh(sbi->vol_amap[i], sync); in exfat_set_bitmap()
210 struct exfat_sb_info *sbi = EXFAT_SB(sb); in exfat_clear_bitmap() local
212 if (!is_valid_cluster(sbi, clu)) in exfat_clear_bitmap()
219 if (!test_bit_le(b, sbi->vol_amap[i]->b_data)) in exfat_clear_bitmap()
222 clear_bit_le(b, sbi->vol_amap[i]->b_data); in exfat_clear_bitmap()
224 exfat_update_bh(sbi->vol_amap[i], sync); in exfat_clear_bitmap()
238 struct exfat_sb_info *sbi = EXFAT_SB(sb); in exfat_find_free_bitmap() local
249 for (i = EXFAT_FIRST_CLUSTER; i < sbi->num_clusters; in exfat_find_free_bitmap()
251 bitval = *(__le_long *)(sbi->vol_amap[map_i]->b_data + map_b); in exfat_find_free_bitmap()
259 if (clu_free < sbi->num_clusters) in exfat_find_free_bitmap()
266 clu_base >= sbi->num_clusters) { in exfat_find_free_bitmap()
267 if (++map_i >= sbi->map_sectors) { in exfat_find_free_bitmap()
280 struct exfat_sb_info *sbi = EXFAT_SB(sb); in exfat_count_used_clusters() local
283 unsigned int total_clus = EXFAT_DATA_CLUSTER_COUNT(sbi); in exfat_count_used_clusters()
289 bitmap = (void *)(sbi->vol_amap[map_i]->b_data + map_b); in exfat_count_used_clusters()
299 bitmap = (void *)(sbi->vol_amap[map_i]->b_data + map_b); in exfat_count_used_clusters()
313 struct exfat_sb_info *sbi = EXFAT_SB(sb); in exfat_trim_fs() local
316 clu_start = max_t(u64, range->start >> sbi->cluster_size_bits, in exfat_trim_fs()
318 clu_end = clu_start + (range->len >> sbi->cluster_size_bits) - 1; in exfat_trim_fs()
319 trim_minlen = range->minlen >> sbi->cluster_size_bits; in exfat_trim_fs()
321 if (clu_start >= sbi->num_clusters || range->len < sbi->cluster_size) in exfat_trim_fs()
324 if (clu_end >= sbi->num_clusters) in exfat_trim_fs()
325 clu_end = sbi->num_clusters - 1; in exfat_trim_fs()
327 mutex_lock(&sbi->bitmap_lock); in exfat_trim_fs()
346 exfat_cluster_to_sector(sbi, trim_begin), in exfat_trim_fs()
347 count * sbi->sect_per_clus, GFP_NOFS, 0); in exfat_trim_fs()
373 err = sb_issue_discard(sb, exfat_cluster_to_sector(sbi, trim_begin), in exfat_trim_fs()
374 count * sbi->sect_per_clus, GFP_NOFS, 0); in exfat_trim_fs()
382 mutex_unlock(&sbi->bitmap_lock); in exfat_trim_fs()
383 range->len = trimmed_total << sbi->cluster_size_bits; in exfat_trim_fs()