hash_zones
data_vio->hash_zone = vdo_select_hash_zone(vdo_from_data_vio(data_vio)->hash_zones,
static void close_index(struct hash_zones *zones)
static void open_index(struct hash_zones *zones)
struct hash_zones *zones = as_hash_zones(completion);
static void report_dedupe_timeouts(struct hash_zones *zones, unsigned int timeouts)
static int initialize_index(struct vdo *vdo, struct hash_zones *zones)
report_dedupe_timeouts(completion->vdo->hash_zones, timed_out);
static int __must_check initialize_zone(struct vdo *vdo, struct hash_zones *zones,
struct hash_zones *zones = context;
int vdo_make_hash_zones(struct vdo *vdo, struct hash_zones **zones_ptr)
struct hash_zones *zones;
void vdo_finish_dedupe_index(struct hash_zones *zones)
void vdo_free_hash_zones(struct hash_zones *zones)
struct hash_zones *zones = container_of(state, struct hash_zones, state);
struct hash_zones *zones = context;
struct hash_zones *zones = context;
void vdo_drain_hash_zones(struct hash_zones *zones, struct vdo_completion *parent)
static void launch_dedupe_state_change(struct hash_zones *zones)
struct hash_zones *zones = context;
struct hash_zone *zone = &(((struct hash_zones *) context)->zones[zone_number]);
void vdo_resume_hash_zones(struct hash_zones *zones, struct vdo_completion *parent)
static void get_index_statistics(struct hash_zones *zones,
void vdo_get_dedupe_statistics(struct hash_zones *zones, struct vdo_statistics *stats)
struct hash_zone *vdo_select_hash_zone(struct hash_zones *zones,
static const char *index_state_to_string(struct hash_zones *zones,
void vdo_dump_hash_zones(struct hash_zones *zones)
if (!READ_ONCE(vdo->hash_zones->dedupe_flag)) {
atomic64_inc(&vdo->hash_zones->dedupe_context_busy);
static void set_target_state(struct hash_zones *zones, enum index_state target,
const char *vdo_get_dedupe_index_state_name(struct hash_zones *zones)
int vdo_message_dedupe_index(struct hash_zones *zones, const char *name)
void vdo_set_dedupe_state_normal(struct hash_zones *zones)
void vdo_start_dedupe_index(struct hash_zones *zones, bool create_flag)
static inline struct hash_zones *as_hash_zones(struct vdo_completion *completion)
return container_of(completion, struct hash_zones, completion);
void vdo_set_dedupe_state_normal(struct hash_zones *zones);
void vdo_start_dedupe_index(struct hash_zones *zones, bool create_flag);
void vdo_resume_hash_zones(struct hash_zones *zones, struct vdo_completion *parent);
void vdo_finish_dedupe_index(struct hash_zones *zones);
struct hash_zones;
int __must_check vdo_make_hash_zones(struct vdo *vdo, struct hash_zones **zones_ptr);
void vdo_free_hash_zones(struct hash_zones *zones);
void vdo_drain_hash_zones(struct hash_zones *zones, struct vdo_completion *parent);
void vdo_get_dedupe_statistics(struct hash_zones *zones, struct vdo_statistics *stats);
struct hash_zone * __must_check vdo_select_hash_zone(struct hash_zones *zones,
void vdo_dump_hash_zones(struct hash_zones *zones);
const char *vdo_get_dedupe_index_state_name(struct hash_zones *zones);
u64 vdo_get_dedupe_index_timeout_count(struct hash_zones *zones);
int vdo_message_dedupe_index(struct hash_zones *zones, const char *name);
vdo_get_dedupe_index_state_name(vdo->hash_zones),
return vdo_message_dedupe_index(vdo->hash_zones, argv[0]);
return vdo_make_hash_zones(vdo, &vdo->hash_zones);
vdo_drain_hash_zones(vdo->hash_zones, completion);
vdo_set_dedupe_state_normal(vdo->hash_zones);
vdo_start_dedupe_index(vdo->hash_zones, was_new(vdo));
vdo_resume_hash_zones(vdo->hash_zones, completion);
config->hash_zones = count;
.hash_zones = 0,
(config->thread_counts.hash_zones == 0))) {
vdo_dump_hash_zones(vdo->hash_zones);
unsigned int hash_zones;
vdo_get_dedupe_statistics(vdo->hash_zones, stats);
vdo_dump_hash_zones(vdo->hash_zones);
bool single = ((counts.logical_zones + counts.physical_zones + counts.hash_zones) == 0);
config->hash_zone_count = counts.hash_zones;
assign_thread_ids(config, config->hash_zone_threads, counts.hash_zones);
config->thread_counts.hash_zones, vdo->thread_config.thread_count);
vdo_finish_dedupe_index(vdo->hash_zones);
vdo_free_hash_zones(vdo_forget(vdo->hash_zones));
struct hash_zones *hash_zones;