| /linux/drivers/md/dm-vdo/ |
| A D | data-vio.h | 176 struct data_vio { struct 318 static inline bool data_vio_has_allocation(struct data_vio *data_vio) in data_vio_has_allocation() argument 324 advance_data_vio_compression_stage(struct data_vio *data_vio); 326 get_data_vio_compression_status(struct data_vio *data_vio); 327 bool cancel_data_vio_compression(struct data_vio *data_vio); 351 static inline void continue_data_vio(struct data_vio *data_vio) in continue_data_vio() argument 654 void data_vio_allocate_data_block(struct data_vio *data_vio, 660 int __must_check uncompress_data_vio(struct data_vio *data_vio, 664 void update_metadata_for_data_vio_write(struct data_vio *data_vio, 666 void write_data_vio(struct data_vio *data_vio); [all …]
|
| A D | data-vio.c | 613 struct data_vio *data_vio = in get_available_data_vio() local 671 struct data_vio *data_vio, in reuse_or_release_resources() argument 720 struct data_vio *data_vio; in process_release_callback() local 875 struct data_vio *data_vio = &pool->data_vios[i]; in make_data_vio_pool() local 898 struct data_vio *data_vio, *tmp; in free_data_vio_pool() local 962 struct data_vio *data_vio; in vdo_launch_bio() local 1295 data_vio->read = data_vio->is_partial; in finish_cleanup() 1444 int uncompress_data_vio(struct data_vio *data_vio, in uncompress_data_vio() argument 1652 struct data_vio *data_vio = container_of(completion, struct data_vio, in decrement_reference_count() local 1887 void write_data_vio(struct data_vio *data_vio) in write_data_vio() argument [all …]
|
| A D | dump.c | 155 struct data_vio *data_vio; in dump_vio_waiters() local 163 wait_on, data_vio, data_vio->allocation.pbn, data_vio->logical.lbn, in dump_vio_waiters() 164 data_vio->duplicate.pbn, get_data_vio_operation_name(data_vio)); in dump_vio_waiters() 169 data_vio, data_vio->allocation.pbn, data_vio->logical.lbn, in dump_vio_waiters() 189 static void encode_vio_dump_flags(struct data_vio *data_vio, char buffer[8]) in encode_vio_dump_flags() argument 199 if (data_vio->is_partial) in encode_vio_dump_flags() 201 if (data_vio->is_zero) in encode_vio_dump_flags() 215 struct data_vio *data_vio = data; in dump_data_vio() local 239 data_vio->allocation.pbn, data_vio->logical.lbn, in dump_data_vio() 244 data_vio->allocation.pbn, data_vio->logical.lbn); in dump_data_vio() [all …]
|
| A D | packer.c | 240 static void abort_packing(struct data_vio *data_vio) in abort_packing() argument 257 static void release_compressed_write_waiter(struct data_vio *data_vio, in release_compressed_write_waiter() argument 325 static void add_to_bin(struct packer_bin *bin, struct data_vio *data_vio) in add_to_bin() argument 343 struct data_vio *data_vio = bin->incoming[--bin->slots_used]; in remove_from_bin() local 347 return data_vio; in remove_from_bin() 391 struct data_vio *data_vio, in pack_fragment() argument 412 struct data_vio *data_vio = vio_as_data_vio(bio->bi_private); in compressed_write_end_io() local 500 struct data_vio *data_vio) in add_data_vio_to_packer_bin() argument 525 struct data_vio *data_vio) in select_bin() argument 563 void vdo_attempt_packing(struct data_vio *data_vio) in vdo_attempt_packing() argument [all …]
|
| A D | dedupe.c | 492 static void exit_hash_lock(struct data_vio *data_vio) in exit_hash_lock() argument 816 struct data_vio *agent = data_vio; in finish_deduping() 990 data_vio->new_mapped = data_vio->duplicate; in launch_dedupe() 1509 struct data_vio *data_vio; in select_writing_agent() local 1600 struct data_vio *data_vio = context->requestor; in decode_uds_advice() local 1740 struct data_vio *data_vio = as_data_vio(completion); in vdo_continue_hash_lock() local 1837 struct data_vio *data_vio = as_data_vio(completion); in vdo_acquire_hash_lock() local 1909 void vdo_release_hash_lock(struct data_vio *data_vio) in vdo_release_hash_lock() argument 1971 data_vio->duplicate = data_vio->new_mapped; in transfer_allocation_lock() 2008 data_vio->duplicate = data_vio->new_mapped; in vdo_share_compressed_write_lock() [all …]
|
| A D | block-map.c | 1777 struct data_vio *data_vio); 1830 struct data_vio *data_vio = completion->parent; in finish_block_map_page_load() local 1855 struct data_vio *data_vio = completion->parent; in handle_io_error() local 1866 struct data_vio *data_vio = vio->completion.parent; in load_page_endio() local 1940 struct data_vio *data_vio = as_data_vio(completion); in allocation_failure() local 2073 struct data_vio *data_vio = as_data_vio(completion); in finish_block_map_allocation() local 2191 struct data_vio *data_vio) in allocate_block_map_page() argument 2195 if (!data_vio->write || data_vio->is_discard) { in allocate_block_map_page() 3255 data_vio, data_vio->new_mapped.pbn, in put_mapping_in_fetched_page() 3264 void vdo_get_mapped_block(struct data_vio *data_vio) in vdo_get_mapped_block() argument [all …]
|
| A D | dedupe.h | 26 struct data_vio *requestor; 72 struct pbn_lock * __must_check vdo_get_duplicate_lock(struct data_vio *data_vio); 76 void vdo_release_hash_lock(struct data_vio *data_vio); 77 void vdo_clean_failed_hash_lock(struct data_vio *data_vio); 78 void vdo_share_compressed_write_lock(struct data_vio *data_vio,
|
| A D | logical-zone.c | 227 struct data_vio *data_vio = in update_oldest_active_generation() local 231 (data_vio == NULL) ? zone->flush_generation : data_vio->flush_generation; in update_oldest_active_generation() 265 void vdo_acquire_flush_generation_lock(struct data_vio *data_vio) in vdo_acquire_flush_generation_lock() argument 267 struct logical_zone *zone = data_vio->logical.zone; in vdo_acquire_flush_generation_lock() 272 data_vio->flush_generation = zone->flush_generation; in vdo_acquire_flush_generation_lock() 273 list_add_tail(&data_vio->write_entry, &zone->write_vios); in vdo_acquire_flush_generation_lock() 325 void vdo_release_flush_generation_lock(struct data_vio *data_vio) in vdo_release_flush_generation_lock() argument 327 struct logical_zone *zone = data_vio->logical.zone; in vdo_release_flush_generation_lock() 331 if (!data_vio_has_flush_generation_lock(data_vio)) in vdo_release_flush_generation_lock() 334 list_del_init(&data_vio->write_entry); in vdo_release_flush_generation_lock() [all …]
|
| A D | physical-zone.c | 522 struct data_vio *data_vio = vdo_waiter_as_data_vio(waiter); in retry_allocation() local 525 data_vio->allocation.wait_for_clean_slab = false; in retry_allocation() 526 data_vio->allocation.first_allocation_zone = data_vio->allocation.zone->zone_number; in retry_allocation() 527 continue_data_vio(data_vio); in retry_allocation() 539 static bool continue_allocating(struct data_vio *data_vio) in continue_allocating() argument 541 struct allocation *allocation = &data_vio->allocation; in continue_allocating() 560 data_vio->waiter.callback = retry_allocation; in continue_allocating() 562 &data_vio->waiter); in continue_allocating() 588 bool vdo_allocate_block_in_zone(struct data_vio *data_vio) in vdo_allocate_block_in_zone() argument 590 int result = allocate_and_lock_block(&data_vio->allocation); in vdo_allocate_block_in_zone() [all …]
|
| A D | block-map.h | 323 void vdo_find_block_map_slot(struct data_vio *data_vio); 358 zone_count_t vdo_compute_logical_zone(struct data_vio *data_vio); 363 void vdo_update_block_map_page(struct block_map_page *page, struct data_vio *data_vio, 368 void vdo_get_mapped_block(struct data_vio *data_vio); 370 void vdo_put_mapped_block(struct data_vio *data_vio);
|
| A D | recovery-journal.c | 1065 static void update_usages(struct recovery_journal *journal, struct data_vio *data_vio) in update_usages() argument 1086 struct data_vio *data_vio = vdo_waiter_as_data_vio(waiter); in assign_entry() local 1096 update_usages(journal, data_vio); in assign_entry() 1173 struct data_vio *data_vio = vdo_waiter_as_data_vio(waiter); in continue_committed_waiter() local 1179 &data_vio->recovery_journal_point), in continue_committed_waiter() 1199 continue_data_vio(data_vio); in continue_committed_waiter() 1331 struct data_vio *data_vio = in add_queued_recovery_entries() local 1333 struct tree_lock *lock = &data_vio->tree_lock; in add_queued_recovery_entries() 1345 .pbn = data_vio->increment_updater.zpbn.pbn, in add_queued_recovery_entries() 1349 .pbn = data_vio->decrement_updater.zpbn.pbn, in add_queued_recovery_entries() [all …]
|
| A D | logical-zone.h | 81 void vdo_acquire_flush_generation_lock(struct data_vio *data_vio); 83 void vdo_release_flush_generation_lock(struct data_vio *data_vio);
|
| A D | packer.h | 71 struct data_vio *incoming[]; 108 void vdo_attempt_packing(struct data_vio *data_vio);
|
| A D | io-submitter.h | 25 void vdo_submit_data_vio(struct data_vio *data_vio);
|
| A D | physical-zone.h | 107 bool __must_check vdo_allocate_block_in_zone(struct data_vio *data_vio);
|
| A D | io-submitter.c | 314 void vdo_submit_data_vio(struct data_vio *data_vio) in vdo_submit_data_vio() argument 316 if (try_bio_map_merge(&data_vio->vio)) in vdo_submit_data_vio() 319 launch_data_vio_bio_zone_callback(data_vio, submit_data_vio); in vdo_submit_data_vio()
|
| A D | recovery-journal.h | 286 struct data_vio *data_vio);
|
| A D | types.h | 332 struct data_vio;
|
| A D | slab-depot.c | 1694 struct data_vio *data_vio = data_vio_from_reference_updater(updater); in add_entry_from_waiter() local 1701 sequence_number_t recovery_block = data_vio->recovery_journal_point.sequence_number; in add_entry_from_waiter() 1723 expand_journal_point(data_vio->recovery_journal_point, in add_entry_from_waiter() 1741 continue_data_vio_with_error(data_vio, result); in add_entry_from_waiter() 1743 vdo_continue_completion(&data_vio->decrement_completion, result); in add_entry_from_waiter() 3067 struct data_vio *data_vio = data_vio_from_reference_updater(updater); in abort_waiter() local 3070 continue_data_vio_with_error(data_vio, VDO_READ_ONLY); in abort_waiter() 3074 vdo_continue_completion(&data_vio->decrement_completion, VDO_READ_ONLY); in abort_waiter()
|
| /linux/Documentation/admin-guide/device-mapper/ |
| A D | vdo-design.rst | 49 request object (the "data_vio") which will be added to a work queue when 196 The vio and data_vio Structures 209 data_vio contain a struct vio and also includes several other fields 210 related to deduplication and other vdo features. The data_vio is the 332 1. A data_vio is obtained from the data_vio pool and associated with the 350 the logical address and the value is a pointer to the data_vio 353 If a data_vio looks in the hashtable and finds that another data_vio is 361 This stage requires the data_vio to get an implicit lock on the 431 recorded in the data_vio. 580 acknowledged, and the data_vio is returned to the pool. [all …]
|