Lines Matching full:vio
20 #include "data-vio.h"
29 #include "vio.h"
94 struct pooled_vio *vio; member
194 get_page_buffer(info), &info->vio); in initialize_info()
199 info->vio->completion.callback_thread_id = cache->zone->thread_id; in initialize_info()
665 * @completion: The page read vio.
691 * @completion: The vio which has loaded the page. Its parent is the page_info.
755 struct vio *vio = bio->bi_private; in load_cache_page_endio() local
756 struct page_info *info = vio->completion.parent; in load_cache_page_endio()
758 continue_vio_after_io(vio, page_is_loaded, info->cache->zone->thread_id); in load_cache_page_endio()
787 vdo_submit_metadata_vio(info->vio, pbn, load_cache_page_endio, in launch_page_load()
806 struct vio *vio = bio->bi_private; in flush_endio() local
807 struct page_info *info = vio->completion.parent; in flush_endio()
809 continue_vio_after_io(vio, write_pages, info->cache->zone->thread_id); in flush_endio()
816 struct vio *vio; in save_pages() local
829 vio = info->vio; in save_pages()
836 vdo_submit_flush_vio(vio, flush_endio, handle_flush_error); in save_pages()
1003 * @completion: The page write vio.
1034 struct vio *vio = bio->bi_private; in write_cache_page_endio() local
1035 struct page_info *info = vio->completion.parent; in write_cache_page_endio()
1037 continue_vio_after_io(vio, page_is_written_out, info->cache->zone->thread_id); in write_cache_page_endio()
1042 * @completion: The vio which wrote the page. Its parent is a page_info.
1054 vdo_submit_metadata_vio(info->vio, info->pbn, in page_is_written_out()
1089 * @flush_completion: The flush vio.
1113 struct vdo_completion *completion = &info->vio->completion; in write_pages()
1122 vdo_submit_metadata_vio(info->vio, info->pbn, write_cache_page_endio, in write_pages()
1496 static void write_page(struct tree_page *tree_page, struct pooled_vio *vio);
1547 static void return_to_pool(struct block_map_zone *zone, struct pooled_vio *vio) in return_to_pool() argument
1549 return_vio_to_pool(zone->vio_pool, vio); in return_to_pool()
1557 struct vio *vio = as_vio(completion); in finish_page_write() local
1558 struct pooled_vio *pooled = container_of(vio, struct pooled_vio, vio); in finish_page_write()
1603 struct vio *vio = as_vio(completion); in handle_write_error() local
1604 struct pooled_vio *pooled = container_of(vio, struct pooled_vio, vio); in handle_write_error()
1607 vio_record_metadata_io_error(vio); in handle_write_error()
1616 struct vio *vio = as_vio(completion); in write_initialized_page() local
1617 struct pooled_vio *pooled = container_of(vio, struct pooled_vio, vio); in write_initialized_page()
1620 struct block_map_page *page = (struct block_map_page *) vio->data; in write_initialized_page()
1632 vdo_submit_metadata_vio(vio, vdo_get_block_map_page_pbn(page), in write_initialized_page()
1639 struct pooled_vio *vio = bio->bi_private; in write_page_endio() local
1640 struct block_map_zone *zone = vio->context; in write_page_endio()
1641 struct block_map_page *page = (struct block_map_page *) vio->vio.data; in write_page_endio()
1643 continue_vio_after_io(&vio->vio, in write_page_endio()
1649 static void write_page(struct tree_page *tree_page, struct pooled_vio *vio) in write_page() argument
1651 struct vdo_completion *completion = &vio->vio.completion; in write_page()
1652 struct block_map_zone *zone = vio->context; in write_page()
1662 return_to_pool(zone, vio); in write_page()
1667 memcpy(vio->vio.data, tree_page->page_buffer, VDO_BLOCK_SIZE); in write_page()
1678 * We've already copied the page into the vio which will write it, so if it was not yet in write_page()
1689 vdo_submit_metadata_vio(&vio->vio, vdo_get_block_map_page_pbn(page), in write_page()
1720 data_vio->vio.completion.error_handler = handle_data_vio_error; in finish_lookup()
1828 struct vio *vio = as_vio(completion); in finish_block_map_page_load() local
1829 struct pooled_vio *pooled = vio_as_pooled_vio(vio); in finish_block_map_page_load()
1840 if (!vdo_copy_valid_page(vio->data, nonce, pbn, page)) in finish_block_map_page_load()
1853 struct vio *vio = as_vio(completion); in handle_io_error() local
1854 struct pooled_vio *pooled = container_of(vio, struct pooled_vio, vio); in handle_io_error()
1858 vio_record_metadata_io_error(vio); in handle_io_error()
1865 struct vio *vio = bio->bi_private; in load_page_endio() local
1866 struct data_vio *data_vio = vio->completion.parent; in load_page_endio()
1868 continue_vio_after_io(vio, finish_block_map_page_load, in load_page_endio()
1879 pooled->vio.completion.parent = data_vio; in load_page()
1880 vdo_submit_metadata_vio(&pooled->vio, pbn, load_page_endio, in load_page()
1921 /* Load a block map tree page from disk, for the next level in the data vio tree lock. */
2504 return_vio_to_pool(cursors->pool, vdo_forget(cursor->vio)); in finish_cursor()
2517 * @completion: The VIO doing a read or write.
2527 * @completion: The VIO doing the read.
2538 vdo_copy_valid_page(cursor->vio->vio.data, in finish_traversal_load()
2540 pbn_from_vio_bio(cursor->vio->vio.bio), page); in finish_traversal_load()
2546 struct vio *vio = bio->bi_private; in traversal_endio() local
2547 struct cursor *cursor = vio->completion.parent; in traversal_endio()
2549 continue_vio_after_io(vio, finish_traversal_load, in traversal_endio()
2612 vdo_submit_metadata_vio(&cursor->vio->vio, location.pbn, in traverse()
2623 * launch_cursor() - Start traversing a single block map tree now that the cursor has a VIO with
2634 cursor->vio = pooled; in launch_cursor()
2635 pooled->vio.completion.parent = cursor; in launch_cursor()
2636 pooled->vio.completion.callback_thread_id = cursor->parent->zone->thread_id; in launch_cursor()
2832 free_vio(vdo_forget(info->vio)); in uninitialize_block_map_zone()
2947 /* Compute the logical zone for the LBN of a data vio. */
3091 modifiable, &data_vio->vio.completion, in fetch_mapping_page()
3148 * A read VIO has no option but to report the bad mapping--reading zeros would be hiding in set_mapped_location()
3155 * A write VIO only reads this mapping to decref the old block. Treat this as an unmapped in set_mapped_location()