Lines Matching refs:info
29 struct dm_disk_bitset *info) in dm_disk_bitset_init() argument
31 dm_array_info_init(&info->array_info, tm, &bitset_bvt); in dm_disk_bitset_init()
32 info->current_index_set = false; in dm_disk_bitset_init()
36 int dm_bitset_empty(struct dm_disk_bitset *info, dm_block_t *root) in dm_bitset_empty() argument
38 return dm_array_empty(&info->array_info, root); in dm_bitset_empty()
42 int dm_bitset_resize(struct dm_disk_bitset *info, dm_block_t root, in dm_bitset_resize() argument
51 return dm_array_resize(&info->array_info, root, old_blocks, new_blocks, in dm_bitset_resize()
56 int dm_bitset_del(struct dm_disk_bitset *info, dm_block_t root) in dm_bitset_del() argument
58 return dm_array_del(&info->array_info, root); in dm_bitset_del()
62 int dm_bitset_flush(struct dm_disk_bitset *info, dm_block_t root, in dm_bitset_flush() argument
68 if (!info->current_index_set || !info->dirty) in dm_bitset_flush()
71 value = cpu_to_le64(info->current_bits); in dm_bitset_flush()
74 r = dm_array_set_value(&info->array_info, root, info->current_index, in dm_bitset_flush()
79 info->current_index_set = false; in dm_bitset_flush()
80 info->dirty = false; in dm_bitset_flush()
86 static int read_bits(struct dm_disk_bitset *info, dm_block_t root, in read_bits() argument
92 r = dm_array_get_value(&info->array_info, root, array_index, &value); in read_bits()
96 info->current_bits = le64_to_cpu(value); in read_bits()
97 info->current_index_set = true; in read_bits()
98 info->current_index = array_index; in read_bits()
99 info->dirty = false; in read_bits()
104 static int get_array_entry(struct dm_disk_bitset *info, dm_block_t root, in get_array_entry() argument
110 if (info->current_index_set) { in get_array_entry()
111 if (info->current_index == array_index) in get_array_entry()
114 r = dm_bitset_flush(info, root, new_root); in get_array_entry()
119 return read_bits(info, root, array_index); in get_array_entry()
122 int dm_bitset_set_bit(struct dm_disk_bitset *info, dm_block_t root, in dm_bitset_set_bit() argument
128 r = get_array_entry(info, root, index, new_root); in dm_bitset_set_bit()
132 set_bit(b, (unsigned long *) &info->current_bits); in dm_bitset_set_bit()
133 info->dirty = true; in dm_bitset_set_bit()
139 int dm_bitset_clear_bit(struct dm_disk_bitset *info, dm_block_t root, in dm_bitset_clear_bit() argument
145 r = get_array_entry(info, root, index, new_root); in dm_bitset_clear_bit()
149 clear_bit(b, (unsigned long *) &info->current_bits); in dm_bitset_clear_bit()
150 info->dirty = true; in dm_bitset_clear_bit()
156 int dm_bitset_test_bit(struct dm_disk_bitset *info, dm_block_t root, in dm_bitset_test_bit() argument
162 r = get_array_entry(info, root, index, new_root); in dm_bitset_test_bit()
166 *result = test_bit(b, (unsigned long *) &info->current_bits); in dm_bitset_test_bit()