Lines Matching refs:b
23 struct dm_block *b, in index_prepare_for_write() argument
26 struct disk_metadata_index *mi_le = dm_block_data(b); in index_prepare_for_write()
28 mi_le->blocknr = cpu_to_le64(dm_block_location(b)); in index_prepare_for_write()
35 struct dm_block *b, in index_check() argument
38 struct disk_metadata_index *mi_le = dm_block_data(b); in index_check()
41 if (dm_block_location(b) != le64_to_cpu(mi_le->blocknr)) { in index_check()
43 le64_to_cpu(mi_le->blocknr), dm_block_location(b)); in index_check()
73 struct dm_block *b, in bitmap_prepare_for_write() argument
76 struct disk_bitmap_header *disk_header = dm_block_data(b); in bitmap_prepare_for_write()
78 disk_header->blocknr = cpu_to_le64(dm_block_location(b)); in bitmap_prepare_for_write()
85 struct dm_block *b, in bitmap_check() argument
88 struct disk_bitmap_header *disk_header = dm_block_data(b); in bitmap_check()
91 if (dm_block_location(b) != le64_to_cpu(disk_header->blocknr)) { in bitmap_check()
93 le64_to_cpu(disk_header->blocknr), dm_block_location(b)); in bitmap_check()
120 static void *dm_bitmap_data(struct dm_block *b) in dm_bitmap_data() argument
122 return dm_block_data(b) + sizeof(struct disk_bitmap_header); in dm_bitmap_data()
127 static unsigned bitmap_word_used(void *addr, unsigned b) in bitmap_word_used() argument
130 __le64 *w_le = words_le + (b >> ENTRIES_SHIFT); in bitmap_word_used()
138 static unsigned sm_lookup_bitmap(void *addr, unsigned b) in sm_lookup_bitmap() argument
141 __le64 *w_le = words_le + (b >> ENTRIES_SHIFT); in sm_lookup_bitmap()
144 b = (b & (ENTRIES_PER_WORD - 1)) << 1; in sm_lookup_bitmap()
145 hi = !!test_bit_le(b, (void *) w_le); in sm_lookup_bitmap()
146 lo = !!test_bit_le(b + 1, (void *) w_le); in sm_lookup_bitmap()
150 static void sm_set_bitmap(void *addr, unsigned b, unsigned val) in sm_set_bitmap() argument
153 __le64 *w_le = words_le + (b >> ENTRIES_SHIFT); in sm_set_bitmap()
155 b = (b & (ENTRIES_PER_WORD - 1)) << 1; in sm_set_bitmap()
158 __set_bit_le(b, (void *) w_le); in sm_set_bitmap()
160 __clear_bit_le(b, (void *) w_le); in sm_set_bitmap()
163 __set_bit_le(b + 1, (void *) w_le); in sm_set_bitmap()
165 __clear_bit_le(b + 1, (void *) w_le); in sm_set_bitmap()
253 struct dm_block *b; in sm_ll_extend() local
256 r = dm_tm_new_block(ll->tm, &dm_sm_bitmap_validator, &b); in sm_ll_extend()
260 idx.blocknr = cpu_to_le64(dm_block_location(b)); in sm_ll_extend()
262 r = dm_tm_unlock(ll->tm, b); in sm_ll_extend()
277 int sm_ll_lookup_bitmap(struct ll_disk *ll, dm_block_t b, uint32_t *result) in sm_ll_lookup_bitmap() argument
280 dm_block_t index = b; in sm_ll_lookup_bitmap()
284 b = do_div(index, ll->entries_per_block); in sm_ll_lookup_bitmap()
294 *result = sm_lookup_bitmap(dm_bitmap_data(blk), b); in sm_ll_lookup_bitmap()
299 static int sm_ll_lookup_big_ref_count(struct ll_disk *ll, dm_block_t b, in sm_ll_lookup_big_ref_count() argument
305 r = dm_btree_lookup(&ll->ref_count_info, ll->ref_count_root, &b, &le_rc); in sm_ll_lookup_big_ref_count()
314 int sm_ll_lookup(struct ll_disk *ll, dm_block_t b, uint32_t *result) in sm_ll_lookup() argument
316 int r = sm_ll_lookup_bitmap(ll, b, result); in sm_ll_lookup()
324 return sm_ll_lookup_big_ref_count(ll, b, result); in sm_ll_lookup()
387 static int sm_ll_mutate(struct ll_disk *ll, dm_block_t b, in sm_ll_mutate() argument
394 dm_block_t index = b; in sm_ll_mutate()
416 r = sm_ll_lookup_big_ref_count(ll, b, &old); in sm_ll_mutate()
439 &b, &ll->ref_count_root); in sm_ll_mutate()
454 &b, &le_rc, &ll->ref_count_root); in sm_ll_mutate()
484 int sm_ll_insert(struct ll_disk *ll, dm_block_t b, in sm_ll_insert() argument
487 return sm_ll_mutate(ll, b, set_ref_count, &ref_count, ev); in sm_ll_insert()
496 int sm_ll_inc(struct ll_disk *ll, dm_block_t b, enum allocation_event *ev) in sm_ll_inc() argument
498 return sm_ll_mutate(ll, b, inc_ref_count, NULL, ev); in sm_ll_inc()
512 int sm_ll_dec(struct ll_disk *ll, dm_block_t b, enum allocation_event *ev) in sm_ll_dec() argument
514 return sm_ll_mutate(ll, b, dec_ref_count, NULL, ev); in sm_ll_dec()
550 struct dm_block *b; in metadata_ll_init_index() local
552 r = dm_tm_new_block(ll->tm, &index_validator, &b); in metadata_ll_init_index()
556 memcpy(dm_block_data(b), &ll->mi_le, sizeof(ll->mi_le)); in metadata_ll_init_index()
557 ll->bitmap_root = dm_block_location(b); in metadata_ll_init_index()
559 return dm_tm_unlock(ll->tm, b); in metadata_ll_init_index()
584 struct dm_block *b; in metadata_ll_commit() local
586 r = dm_tm_shadow_block(ll->tm, ll->bitmap_root, &index_validator, &b, &inc); in metadata_ll_commit()
590 memcpy(dm_block_data(b), &ll->mi_le, sizeof(ll->mi_le)); in metadata_ll_commit()
591 ll->bitmap_root = dm_block_location(b); in metadata_ll_commit()
593 return dm_tm_unlock(ll->tm, b); in metadata_ll_commit()