Symbol: volume_index
drivers/md/dm-vdo/indexer/index-layout.c
1110
result = uds_save_volume_index(index->volume_index, writers, index->zone_count);
drivers/md/dm-vdo/indexer/index-layout.c
942
result = uds_load_volume_index(index->volume_index, readers, isl->zone_count);
drivers/md/dm-vdo/indexer/index.c
1058
uds_set_volume_index_open_chapter(index->volume_index, upto_virtual);
drivers/md/dm-vdo/indexer/index.c
1196
result = uds_make_volume_index(config, nonce, &index->volume_index);
drivers/md/dm-vdo/indexer/index.c
1281
uds_free_volume_index(index->volume_index);
drivers/md/dm-vdo/indexer/index.c
129
virtual_chapter = uds_lookup_volume_index_name(index->volume_index,
drivers/md/dm-vdo/indexer/index.c
1342
uds_get_volume_index_stats(index->volume_index, &stats);
drivers/md/dm-vdo/indexer/index.c
1347
counters->memory_used = (index->volume_index->memory_size +
drivers/md/dm-vdo/indexer/index.c
1368
uds_get_volume_index_zone(index->volume_index, &request->record_name);
drivers/md/dm-vdo/indexer/index.c
268
uds_set_volume_index_zone_open_chapter(zone->index->volume_index, zone->id,
drivers/md/dm-vdo/indexer/index.c
419
result = uds_get_volume_index_record(zone->index->volume_index,
drivers/md/dm-vdo/indexer/index.c
474
!uds_is_volume_index_sample(zone->index->volume_index,
drivers/md/dm-vdo/indexer/index.c
525
result = uds_get_volume_index_record(zone->index->volume_index,
drivers/md/dm-vdo/indexer/index.c
870
!uds_is_volume_index_sample(index->volume_index, name)) {
drivers/md/dm-vdo/indexer/index.c
878
result = uds_get_volume_index_record(index->volume_index, name, &record);
drivers/md/dm-vdo/indexer/index.c
986
uds_set_volume_index_open_chapter(index->volume_index, virtual);
drivers/md/dm-vdo/indexer/index.h
42
struct volume_index *volume_index;
drivers/md/dm-vdo/indexer/open-chapter.c
385
zone = uds_get_volume_index_zone(index->volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
1001
abort_restoring_volume_index(volume_index);
drivers/md/dm-vdo/indexer/volume-index.c
1053
static int start_saving_volume_index(const struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
1061
if (!has_sparse(volume_index)) {
drivers/md/dm-vdo/indexer/volume-index.c
1062
return start_saving_volume_sub_index(&volume_index->vi_non_hook,
drivers/md/dm-vdo/indexer/volume-index.c
1068
encode_u32_le(buffer, &offset, volume_index->sparse_sample_rate);
drivers/md/dm-vdo/indexer/volume-index.c
1081
result = start_saving_volume_sub_index(&volume_index->vi_non_hook, zone_number,
drivers/md/dm-vdo/indexer/volume-index.c
1086
return start_saving_volume_sub_index(&volume_index->vi_hook, zone_number,
drivers/md/dm-vdo/indexer/volume-index.c
1096
static int finish_saving_volume_index(const struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
1101
result = finish_saving_volume_sub_index(&volume_index->vi_non_hook, zone_number);
drivers/md/dm-vdo/indexer/volume-index.c
1102
if ((result == UDS_SUCCESS) && has_sparse(volume_index))
drivers/md/dm-vdo/indexer/volume-index.c
1103
result = finish_saving_volume_sub_index(&volume_index->vi_hook, zone_number);
drivers/md/dm-vdo/indexer/volume-index.c
1107
int uds_save_volume_index(struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
1114
result = start_saving_volume_index(volume_index, zone, writers[zone]);
drivers/md/dm-vdo/indexer/volume-index.c
1118
result = finish_saving_volume_index(volume_index, zone);
drivers/md/dm-vdo/indexer/volume-index.c
1153
void uds_get_volume_index_stats(const struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
1158
get_volume_sub_index_stats(&volume_index->vi_non_hook, stats);
drivers/md/dm-vdo/indexer/volume-index.c
1159
if (!has_sparse(volume_index))
drivers/md/dm-vdo/indexer/volume-index.c
1162
get_volume_sub_index_stats(&volume_index->vi_hook, &sparse_stats);
drivers/md/dm-vdo/indexer/volume-index.c
1223
struct volume_index **volume_index_ptr)
drivers/md/dm-vdo/indexer/volume-index.c
1227
struct volume_index *volume_index;
drivers/md/dm-vdo/indexer/volume-index.c
1230
result = vdo_allocate(1, "volume index", &volume_index);
drivers/md/dm-vdo/indexer/volume-index.c
1234
volume_index->zone_count = config->zone_count;
drivers/md/dm-vdo/indexer/volume-index.c
1238
&volume_index->vi_non_hook);
drivers/md/dm-vdo/indexer/volume-index.c
1240
uds_free_volume_index(volume_index);
drivers/md/dm-vdo/indexer/volume-index.c
1244
volume_index->memory_size = volume_index->vi_non_hook.memory_size;
drivers/md/dm-vdo/indexer/volume-index.c
1245
*volume_index_ptr = volume_index;
drivers/md/dm-vdo/indexer/volume-index.c
1249
volume_index->sparse_sample_rate = config->sparse_sample_rate;
drivers/md/dm-vdo/indexer/volume-index.c
1251
result = vdo_allocate(config->zone_count, "volume index zones", &volume_index->zones);
drivers/md/dm-vdo/indexer/volume-index.c
1253
uds_free_volume_index(volume_index);
drivers/md/dm-vdo/indexer/volume-index.c
1258
mutex_init(&volume_index->zones[zone].hook_mutex);
drivers/md/dm-vdo/indexer/volume-index.c
1262
&volume_index->vi_non_hook);
drivers/md/dm-vdo/indexer/volume-index.c
1264
uds_free_volume_index(volume_index);
drivers/md/dm-vdo/indexer/volume-index.c
1270
&volume_index->vi_hook);
drivers/md/dm-vdo/indexer/volume-index.c
1272
uds_free_volume_index(volume_index);
drivers/md/dm-vdo/indexer/volume-index.c
1277
volume_index->memory_size =
drivers/md/dm-vdo/indexer/volume-index.c
1278
volume_index->vi_non_hook.memory_size + volume_index->vi_hook.memory_size;
drivers/md/dm-vdo/indexer/volume-index.c
1279
*volume_index_ptr = volume_index;
drivers/md/dm-vdo/indexer/volume-index.c
162
static inline bool has_sparse(const struct volume_index *volume_index)
drivers/md/dm-vdo/indexer/volume-index.c
164
return volume_index->sparse_sample_rate > 0;
drivers/md/dm-vdo/indexer/volume-index.c
167
bool uds_is_volume_index_sample(const struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
170
if (!has_sparse(volume_index))
drivers/md/dm-vdo/indexer/volume-index.c
173
return (uds_extract_sampling_bytes(name) % volume_index->sparse_sample_rate) == 0;
drivers/md/dm-vdo/indexer/volume-index.c
177
get_volume_sub_index(const struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
180
return (uds_is_volume_index_sample(volume_index, name) ?
drivers/md/dm-vdo/indexer/volume-index.c
181
&volume_index->vi_hook :
drivers/md/dm-vdo/indexer/volume-index.c
182
&volume_index->vi_non_hook);
drivers/md/dm-vdo/indexer/volume-index.c
191
unsigned int uds_get_volume_index_zone(const struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
194
return get_volume_sub_index_zone(get_volume_sub_index(volume_index, name), name);
drivers/md/dm-vdo/indexer/volume-index.c
287
void uds_free_volume_index(struct volume_index *volume_index)
drivers/md/dm-vdo/indexer/volume-index.c
289
if (volume_index == NULL)
drivers/md/dm-vdo/indexer/volume-index.c
292
if (volume_index->zones != NULL)
drivers/md/dm-vdo/indexer/volume-index.c
293
vdo_free(vdo_forget(volume_index->zones));
drivers/md/dm-vdo/indexer/volume-index.c
295
uninitialize_volume_sub_index(&volume_index->vi_non_hook);
drivers/md/dm-vdo/indexer/volume-index.c
296
uninitialize_volume_sub_index(&volume_index->vi_hook);
drivers/md/dm-vdo/indexer/volume-index.c
297
vdo_free(volume_index);
drivers/md/dm-vdo/indexer/volume-index.c
531
int uds_get_volume_index_record(struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
537
if (uds_is_volume_index_sample(volume_index, name)) {
drivers/md/dm-vdo/indexer/volume-index.c
544
get_volume_sub_index_zone(&volume_index->vi_hook, name);
drivers/md/dm-vdo/indexer/volume-index.c
545
struct mutex *mutex = &volume_index->zones[zone].hook_mutex;
drivers/md/dm-vdo/indexer/volume-index.c
548
result = get_volume_sub_index_record(&volume_index->vi_hook, name,
drivers/md/dm-vdo/indexer/volume-index.c
554
result = get_volume_sub_index_record(&volume_index->vi_non_hook, name,
drivers/md/dm-vdo/indexer/volume-index.c
675
void uds_set_volume_index_zone_open_chapter(struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
679
struct mutex *mutex = &volume_index->zones[zone_number].hook_mutex;
drivers/md/dm-vdo/indexer/volume-index.c
681
set_volume_sub_index_zone_open_chapter(&volume_index->vi_non_hook, zone_number,
drivers/md/dm-vdo/indexer/volume-index.c
688
if (has_sparse(volume_index)) {
drivers/md/dm-vdo/indexer/volume-index.c
690
set_volume_sub_index_zone_open_chapter(&volume_index->vi_hook,
drivers/md/dm-vdo/indexer/volume-index.c
700
void uds_set_volume_index_open_chapter(struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
705
for (zone = 0; zone < volume_index->zone_count; zone++)
drivers/md/dm-vdo/indexer/volume-index.c
706
uds_set_volume_index_zone_open_chapter(volume_index, zone, virtual_chapter);
drivers/md/dm-vdo/indexer/volume-index.c
776
u64 uds_lookup_volume_index_name(const struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
779
unsigned int zone_number = uds_get_volume_index_zone(volume_index, name);
drivers/md/dm-vdo/indexer/volume-index.c
780
struct mutex *mutex = &volume_index->zones[zone_number].hook_mutex;
drivers/md/dm-vdo/indexer/volume-index.c
783
if (!uds_is_volume_index_sample(volume_index, name))
drivers/md/dm-vdo/indexer/volume-index.c
787
virtual_chapter = lookup_volume_sub_index_name(&volume_index->vi_hook, name);
drivers/md/dm-vdo/indexer/volume-index.c
798
static void abort_restoring_volume_index(struct volume_index *volume_index)
drivers/md/dm-vdo/indexer/volume-index.c
800
abort_restoring_volume_sub_index(&volume_index->vi_non_hook);
drivers/md/dm-vdo/indexer/volume-index.c
801
if (has_sparse(volume_index))
drivers/md/dm-vdo/indexer/volume-index.c
802
abort_restoring_volume_sub_index(&volume_index->vi_hook);
drivers/md/dm-vdo/indexer/volume-index.c
899
static int start_restoring_volume_index(struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
906
if (!has_sparse(volume_index)) {
drivers/md/dm-vdo/indexer/volume-index.c
907
return start_restoring_volume_sub_index(&volume_index->vi_non_hook,
drivers/md/dm-vdo/indexer/volume-index.c
938
volume_index->sparse_sample_rate = header.sparse_sample_rate;
drivers/md/dm-vdo/indexer/volume-index.c
939
} else if (volume_index->sparse_sample_rate != header.sparse_sample_rate) {
drivers/md/dm-vdo/indexer/volume-index.c
942
volume_index->sparse_sample_rate,
drivers/md/dm-vdo/indexer/volume-index.c
948
result = start_restoring_volume_sub_index(&volume_index->vi_non_hook,
drivers/md/dm-vdo/indexer/volume-index.c
953
return start_restoring_volume_sub_index(&volume_index->vi_hook, buffered_readers,
drivers/md/dm-vdo/indexer/volume-index.c
965
static int finish_restoring_volume_index(struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
971
result = finish_restoring_volume_sub_index(&volume_index->vi_non_hook,
drivers/md/dm-vdo/indexer/volume-index.c
973
if ((result == UDS_SUCCESS) && has_sparse(volume_index)) {
drivers/md/dm-vdo/indexer/volume-index.c
974
result = finish_restoring_volume_sub_index(&volume_index->vi_hook,
drivers/md/dm-vdo/indexer/volume-index.c
982
int uds_load_volume_index(struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.c
988
result = start_restoring_volume_index(volume_index, readers, reader_count);
drivers/md/dm-vdo/indexer/volume-index.c
992
result = finish_restoring_volume_index(volume_index, readers, reader_count);
drivers/md/dm-vdo/indexer/volume-index.c
994
abort_restoring_volume_index(volume_index);
drivers/md/dm-vdo/indexer/volume-index.h
142
struct volume_index **volume_index);
drivers/md/dm-vdo/indexer/volume-index.h
144
void uds_free_volume_index(struct volume_index *volume_index);
drivers/md/dm-vdo/indexer/volume-index.h
150
unsigned int __must_check uds_get_volume_index_zone(const struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.h
153
bool __must_check uds_is_volume_index_sample(const struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.h
160
u64 __must_check uds_lookup_volume_index_name(const struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.h
163
int __must_check uds_get_volume_index_record(struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.h
175
void uds_set_volume_index_open_chapter(struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.h
178
void uds_set_volume_index_zone_open_chapter(struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.h
182
int __must_check uds_load_volume_index(struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.h
186
int __must_check uds_save_volume_index(struct volume_index *volume_index,
drivers/md/dm-vdo/indexer/volume-index.h
190
void uds_get_volume_index_stats(const struct volume_index *volume_index,