struct logical_zone { /* The completion for flush notifications */ struct vdo_completion completion; /* The owner of this zone */ struct logical_zones *zones; /* Which logical zone this is */
zone_count_t zone_number; /* The thread id for this zone */
thread_id_t thread_id; /* In progress operations keyed by LBN */ struct int_map *lbn_operations; /* The logical to physical map */ struct block_map_zone *block_map_zone; /* The current flush generation */
sequence_number_t flush_generation; /* * The oldest active generation in this zone. This is mutated only on the logical zone * thread but is queried from the flusher thread.
*/
sequence_number_t oldest_active_generation; /* The number of IOs in the current flush generation */
block_count_t ios_in_flush_generation; /* The youngest generation of the current notification */
sequence_number_t notification_generation; /* Whether a notification is in progress */ bool notifying; /* The queue of active data write VIOs */ struct list_head write_vios; /* The administrative state of the zone */ struct admin_state state; /* The physical zone from which to allocate */ struct physical_zone *allocation_zone; /* The number of allocations done from the current allocation_zone */
block_count_t allocation_count; /* The next zone */ struct logical_zone *next;
};
struct logical_zones { /* The vdo whose zones these are */ struct vdo *vdo; /* The manager for administrative actions */ struct action_manager *manager; /* The number of zones */
zone_count_t zone_count; /* The logical zones themselves */ struct logical_zone zones[];
};
int __must_check vdo_make_logical_zones(struct vdo *vdo, struct logical_zones **zones_ptr);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.