Lines Matching refs:data_vio
131 struct data_vio *next_in_batch;
134 struct data_vio *lock_holder;
176 struct data_vio { struct
281 static inline struct data_vio *vio_as_data_vio(struct vio *vio) in vio_as_data_vio() argument
284 return container_of(vio, struct data_vio, vio); in vio_as_data_vio()
287 static inline struct data_vio *as_data_vio(struct vdo_completion *completion) in as_data_vio()
292 static inline struct data_vio *vdo_waiter_as_data_vio(struct vdo_waiter *waiter) in vdo_waiter_as_data_vio()
297 return container_of(waiter, struct data_vio, waiter); in vdo_waiter_as_data_vio()
300 static inline struct data_vio *data_vio_from_reference_updater(struct reference_updater *updater) in data_vio_from_reference_updater()
303 return container_of(updater, struct data_vio, increment_updater); in data_vio_from_reference_updater()
305 return container_of(updater, struct data_vio, decrement_updater); in data_vio_from_reference_updater()
308 static inline bool data_vio_has_flush_generation_lock(struct data_vio *data_vio) in data_vio_has_flush_generation_lock() argument
310 return !list_empty(&data_vio->write_entry); in data_vio_has_flush_generation_lock()
313 static inline struct vdo *vdo_from_data_vio(struct data_vio *data_vio) in vdo_from_data_vio() argument
315 return data_vio->vio.completion.vdo; in vdo_from_data_vio()
318 static inline bool data_vio_has_allocation(struct data_vio *data_vio) in data_vio_has_allocation() argument
320 return (data_vio->allocation.pbn != VDO_ZERO_BLOCK); in data_vio_has_allocation()
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
353 vdo_launch_completion(&data_vio->vio.completion); in continue_data_vio()
362 static inline void continue_data_vio_with_error(struct data_vio *data_vio, int result) in continue_data_vio_with_error() argument
364 vdo_continue_completion(&data_vio->vio.completion, result); in continue_data_vio_with_error()
367 const char * __must_check get_data_vio_operation_name(struct data_vio *data_vio);
369 static inline void assert_data_vio_in_hash_zone(struct data_vio *data_vio) in assert_data_vio_in_hash_zone() argument
371 thread_id_t expected = data_vio->hash_zone->thread_id; in assert_data_vio_in_hash_zone()
379 (unsigned long long) data_vio->logical.lbn, thread_id, expected); in assert_data_vio_in_hash_zone()
382 static inline void set_data_vio_hash_zone_callback(struct data_vio *data_vio, in set_data_vio_hash_zone_callback() argument
385 vdo_set_completion_callback(&data_vio->vio.completion, callback, in set_data_vio_hash_zone_callback()
386 data_vio->hash_zone->thread_id); in set_data_vio_hash_zone_callback()
393 static inline void launch_data_vio_hash_zone_callback(struct data_vio *data_vio, in launch_data_vio_hash_zone_callback() argument
396 set_data_vio_hash_zone_callback(data_vio, callback); in launch_data_vio_hash_zone_callback()
397 vdo_launch_completion(&data_vio->vio.completion); in launch_data_vio_hash_zone_callback()
400 static inline void assert_data_vio_in_logical_zone(struct data_vio *data_vio) in assert_data_vio_in_logical_zone() argument
402 thread_id_t expected = data_vio->logical.zone->thread_id; in assert_data_vio_in_logical_zone()
407 (unsigned long long) data_vio->logical.lbn, thread_id, expected); in assert_data_vio_in_logical_zone()
410 static inline void set_data_vio_logical_callback(struct data_vio *data_vio, in set_data_vio_logical_callback() argument
413 vdo_set_completion_callback(&data_vio->vio.completion, callback, in set_data_vio_logical_callback()
414 data_vio->logical.zone->thread_id); in set_data_vio_logical_callback()
421 static inline void launch_data_vio_logical_callback(struct data_vio *data_vio, in launch_data_vio_logical_callback() argument
424 set_data_vio_logical_callback(data_vio, callback); in launch_data_vio_logical_callback()
425 vdo_launch_completion(&data_vio->vio.completion); in launch_data_vio_logical_callback()
428 static inline void assert_data_vio_in_allocated_zone(struct data_vio *data_vio) in assert_data_vio_in_allocated_zone() argument
430 thread_id_t expected = data_vio->allocation.zone->thread_id; in assert_data_vio_in_allocated_zone()
435 (unsigned long long) data_vio->allocation.pbn, thread_id, in assert_data_vio_in_allocated_zone()
439 static inline void set_data_vio_allocated_zone_callback(struct data_vio *data_vio, in set_data_vio_allocated_zone_callback() argument
442 vdo_set_completion_callback(&data_vio->vio.completion, callback, in set_data_vio_allocated_zone_callback()
443 data_vio->allocation.zone->thread_id); in set_data_vio_allocated_zone_callback()
451 static inline void launch_data_vio_allocated_zone_callback(struct data_vio *data_vio, in launch_data_vio_allocated_zone_callback() argument
454 set_data_vio_allocated_zone_callback(data_vio, callback); in launch_data_vio_allocated_zone_callback()
455 vdo_launch_completion(&data_vio->vio.completion); in launch_data_vio_allocated_zone_callback()
458 static inline void assert_data_vio_in_duplicate_zone(struct data_vio *data_vio) in assert_data_vio_in_duplicate_zone() argument
460 thread_id_t expected = data_vio->duplicate.zone->thread_id; in assert_data_vio_in_duplicate_zone()
465 (unsigned long long) data_vio->duplicate.pbn, thread_id, in assert_data_vio_in_duplicate_zone()
469 static inline void set_data_vio_duplicate_zone_callback(struct data_vio *data_vio, in set_data_vio_duplicate_zone_callback() argument
472 vdo_set_completion_callback(&data_vio->vio.completion, callback, in set_data_vio_duplicate_zone_callback()
473 data_vio->duplicate.zone->thread_id); in set_data_vio_duplicate_zone_callback()
481 static inline void launch_data_vio_duplicate_zone_callback(struct data_vio *data_vio, in launch_data_vio_duplicate_zone_callback() argument
484 set_data_vio_duplicate_zone_callback(data_vio, callback); in launch_data_vio_duplicate_zone_callback()
485 vdo_launch_completion(&data_vio->vio.completion); in launch_data_vio_duplicate_zone_callback()
488 static inline void assert_data_vio_in_mapped_zone(struct data_vio *data_vio) in assert_data_vio_in_mapped_zone() argument
490 thread_id_t expected = data_vio->mapped.zone->thread_id; in assert_data_vio_in_mapped_zone()
495 (unsigned long long) data_vio->mapped.pbn, thread_id, expected); in assert_data_vio_in_mapped_zone()
498 static inline void set_data_vio_mapped_zone_callback(struct data_vio *data_vio, in set_data_vio_mapped_zone_callback() argument
501 vdo_set_completion_callback(&data_vio->vio.completion, callback, in set_data_vio_mapped_zone_callback()
502 data_vio->mapped.zone->thread_id); in set_data_vio_mapped_zone_callback()
505 static inline void assert_data_vio_in_new_mapped_zone(struct data_vio *data_vio) in assert_data_vio_in_new_mapped_zone() argument
507 thread_id_t expected = data_vio->new_mapped.zone->thread_id; in assert_data_vio_in_new_mapped_zone()
512 (unsigned long long) data_vio->new_mapped.pbn, thread_id, in assert_data_vio_in_new_mapped_zone()
516 static inline void set_data_vio_new_mapped_zone_callback(struct data_vio *data_vio, in set_data_vio_new_mapped_zone_callback() argument
519 vdo_set_completion_callback(&data_vio->vio.completion, callback, in set_data_vio_new_mapped_zone_callback()
520 data_vio->new_mapped.zone->thread_id); in set_data_vio_new_mapped_zone_callback()
523 static inline void assert_data_vio_in_journal_zone(struct data_vio *data_vio) in assert_data_vio_in_journal_zone() argument
525 thread_id_t journal_thread = vdo_from_data_vio(data_vio)->thread_config.journal_thread; in assert_data_vio_in_journal_zone()
530 (unsigned long long) data_vio->logical.lbn, thread_id, in assert_data_vio_in_journal_zone()
534 static inline void set_data_vio_journal_callback(struct data_vio *data_vio, in set_data_vio_journal_callback() argument
537 thread_id_t journal_thread = vdo_from_data_vio(data_vio)->thread_config.journal_thread; in set_data_vio_journal_callback()
539 vdo_set_completion_callback(&data_vio->vio.completion, callback, journal_thread); in set_data_vio_journal_callback()
546 static inline void launch_data_vio_journal_callback(struct data_vio *data_vio, in launch_data_vio_journal_callback() argument
549 set_data_vio_journal_callback(data_vio, callback); in launch_data_vio_journal_callback()
550 vdo_launch_completion(&data_vio->vio.completion); in launch_data_vio_journal_callback()
553 static inline void assert_data_vio_in_packer_zone(struct data_vio *data_vio) in assert_data_vio_in_packer_zone() argument
555 thread_id_t packer_thread = vdo_from_data_vio(data_vio)->thread_config.packer_thread; in assert_data_vio_in_packer_zone()
560 (unsigned long long) data_vio->logical.lbn, thread_id, in assert_data_vio_in_packer_zone()
564 static inline void set_data_vio_packer_callback(struct data_vio *data_vio, in set_data_vio_packer_callback() argument
567 thread_id_t packer_thread = vdo_from_data_vio(data_vio)->thread_config.packer_thread; in set_data_vio_packer_callback()
569 vdo_set_completion_callback(&data_vio->vio.completion, callback, packer_thread); in set_data_vio_packer_callback()
576 static inline void launch_data_vio_packer_callback(struct data_vio *data_vio, in launch_data_vio_packer_callback() argument
579 set_data_vio_packer_callback(data_vio, callback); in launch_data_vio_packer_callback()
580 vdo_launch_completion(&data_vio->vio.completion); in launch_data_vio_packer_callback()
583 static inline void assert_data_vio_on_cpu_thread(struct data_vio *data_vio) in assert_data_vio_on_cpu_thread() argument
585 thread_id_t cpu_thread = vdo_from_data_vio(data_vio)->thread_config.cpu_thread; in assert_data_vio_on_cpu_thread()
590 (unsigned long long) data_vio->logical.lbn, thread_id, in assert_data_vio_on_cpu_thread()
594 static inline void set_data_vio_cpu_callback(struct data_vio *data_vio, in set_data_vio_cpu_callback() argument
597 thread_id_t cpu_thread = vdo_from_data_vio(data_vio)->thread_config.cpu_thread; in set_data_vio_cpu_callback()
599 vdo_set_completion_callback(&data_vio->vio.completion, callback, cpu_thread); in set_data_vio_cpu_callback()
606 static inline void launch_data_vio_cpu_callback(struct data_vio *data_vio, in launch_data_vio_cpu_callback() argument
610 set_data_vio_cpu_callback(data_vio, callback); in launch_data_vio_cpu_callback()
611 vdo_launch_completion_with_priority(&data_vio->vio.completion, priority); in launch_data_vio_cpu_callback()
614 static inline void set_data_vio_bio_zone_callback(struct data_vio *data_vio, in set_data_vio_bio_zone_callback() argument
617 vdo_set_completion_callback(&data_vio->vio.completion, callback, in set_data_vio_bio_zone_callback()
618 get_vio_bio_zone_thread_id(&data_vio->vio)); in set_data_vio_bio_zone_callback()
625 static inline void launch_data_vio_bio_zone_callback(struct data_vio *data_vio, in launch_data_vio_bio_zone_callback() argument
628 set_data_vio_bio_zone_callback(data_vio, callback); in launch_data_vio_bio_zone_callback()
629 vdo_launch_completion_with_priority(&data_vio->vio.completion, in launch_data_vio_bio_zone_callback()
638 static inline void launch_data_vio_on_bio_ack_queue(struct data_vio *data_vio, in launch_data_vio_on_bio_ack_queue() argument
641 struct vdo_completion *completion = &data_vio->vio.completion; in launch_data_vio_on_bio_ack_queue()
654 void data_vio_allocate_data_block(struct data_vio *data_vio,
658 void release_data_vio_allocation_lock(struct data_vio *data_vio, bool reset);
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);
667 void launch_compress_data_vio(struct data_vio *data_vio);