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 dm_tm_unlock(ll->tm, b); in sm_ll_extend()
275 int sm_ll_lookup_bitmap(struct ll_disk *ll, dm_block_t b, uint32_t *result) in sm_ll_lookup_bitmap() argument
278 dm_block_t index = b; in sm_ll_lookup_bitmap()
282 b = do_div(index, ll->entries_per_block); in sm_ll_lookup_bitmap()
292 *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()
385 static int sm_ll_mutate(struct ll_disk *ll, dm_block_t b, in sm_ll_mutate() argument
392 dm_block_t index = b; in sm_ll_mutate()
414 r = sm_ll_lookup_big_ref_count(ll, b, &old); in sm_ll_mutate()
435 &b, &ll->ref_count_root); in sm_ll_mutate()
448 &b, &le_rc, &ll->ref_count_root); in sm_ll_mutate()
478 int sm_ll_insert(struct ll_disk *ll, dm_block_t b, in sm_ll_insert() argument
481 return sm_ll_mutate(ll, b, set_ref_count, &ref_count, ev); in sm_ll_insert()
490 int sm_ll_inc(struct ll_disk *ll, dm_block_t b, enum allocation_event *ev) in sm_ll_inc() argument
492 return sm_ll_mutate(ll, b, inc_ref_count, NULL, ev); in sm_ll_inc()
506 int sm_ll_dec(struct ll_disk *ll, dm_block_t b, enum allocation_event *ev) in sm_ll_dec() argument
508 return sm_ll_mutate(ll, b, dec_ref_count, NULL, ev); in sm_ll_dec()
544 struct dm_block *b; in metadata_ll_init_index() local
546 r = dm_tm_new_block(ll->tm, &index_validator, &b); in metadata_ll_init_index()
550 memcpy(dm_block_data(b), &ll->mi_le, sizeof(ll->mi_le)); in metadata_ll_init_index()
551 ll->bitmap_root = dm_block_location(b); in metadata_ll_init_index()
553 dm_tm_unlock(ll->tm, b); in metadata_ll_init_index()
582 struct dm_block *b; in metadata_ll_commit() local
584 r = dm_tm_shadow_block(ll->tm, ll->bitmap_root, &index_validator, &b, &inc); in metadata_ll_commit()
588 memcpy(dm_block_data(b), &ll->mi_le, sizeof(ll->mi_le)); in metadata_ll_commit()
589 ll->bitmap_root = dm_block_location(b); in metadata_ll_commit()
591 dm_tm_unlock(ll->tm, b); in metadata_ll_commit()