Lines Matching refs:pages
246 struct page *pages[BLKIF_MAX_SEGMENTS_PER_REQUEST]; in free_persistent_gnts() local
252 unmap_data.pages = pages; in free_persistent_gnts()
265 pages[segs_to_unmap] = persistent_gnt->page; in free_persistent_gnts()
273 gnttab_page_cache_put(&ring->free_pages, pages, in free_persistent_gnts()
288 struct page *pages[BLKIF_MAX_SEGMENTS_PER_REQUEST]; in xen_blkbk_unmap_purged_grants() local
294 unmap_data.pages = pages; in xen_blkbk_unmap_purged_grants()
309 pages[segs_to_unmap] = persistent_gnt->page; in xen_blkbk_unmap_purged_grants()
314 gnttab_page_cache_put(&ring->free_pages, pages, in xen_blkbk_unmap_purged_grants()
323 gnttab_page_cache_put(&ring->free_pages, pages, segs_to_unmap); in xen_blkbk_unmap_purged_grants()
647 struct grant_page **pages, in xen_blkbk_unmap_prepare() argument
655 if (pages[i]->persistent_gnt != NULL) { in xen_blkbk_unmap_prepare()
656 put_persistent_gnt(ring, pages[i]->persistent_gnt); in xen_blkbk_unmap_prepare()
659 if (pages[i]->handle == BLKBACK_INVALID_HANDLE) in xen_blkbk_unmap_prepare()
661 unmap_pages[invcount] = pages[i]->page; in xen_blkbk_unmap_prepare()
662 gnttab_set_unmap_op(&unmap_ops[invcount], vaddr(pages[i]->page), in xen_blkbk_unmap_prepare()
663 GNTMAP_host_map, pages[i]->handle); in xen_blkbk_unmap_prepare()
664 pages[i]->handle = BLKBACK_INVALID_HANDLE; in xen_blkbk_unmap_prepare()
681 gnttab_page_cache_put(&ring->free_pages, data->pages, data->count); in xen_blkbk_unmap_and_respond_callback()
707 struct grant_page **pages = req->segments; in xen_blkbk_unmap_and_respond() local
710 invcount = xen_blkbk_unmap_prepare(ring, pages, req->nr_segs, in xen_blkbk_unmap_and_respond()
717 work->pages = req->unmap_pages; in xen_blkbk_unmap_and_respond()
732 struct grant_page *pages[], in xen_blkbk_unmap() argument
743 invcount = xen_blkbk_unmap_prepare(ring, pages, batch, in xen_blkbk_unmap()
751 pages += batch; in xen_blkbk_unmap()
757 struct grant_page *pages[], in xen_blkbk_map() argument
785 pages[i]->gref); in xen_blkbk_map()
793 pages[i]->page = persistent_gnt->page; in xen_blkbk_map()
794 pages[i]->persistent_gnt = persistent_gnt; in xen_blkbk_map()
797 &pages[i]->page)) { in xen_blkbk_map()
804 addr = vaddr(pages[i]->page); in xen_blkbk_map()
805 pages_to_gnt[segs_to_map] = pages[i]->page; in xen_blkbk_map()
806 pages[i]->persistent_gnt = NULL; in xen_blkbk_map()
811 flags, pages[i]->gref, in xen_blkbk_map()
828 if (!pages[seg_idx]->persistent_gnt) { in xen_blkbk_map()
834 &pages[seg_idx]->page, 1); in xen_blkbk_map()
835 pages[seg_idx]->handle = BLKBACK_INVALID_HANDLE; in xen_blkbk_map()
839 pages[seg_idx]->handle = map[new_map_idx].handle; in xen_blkbk_map()
861 persistent_gnt->page = pages[seg_idx]->page; in xen_blkbk_map()
868 pages[seg_idx]->persistent_gnt = persistent_gnt; in xen_blkbk_map()
895 pages[i]->persistent_gnt = NULL; in xen_blkbk_map()
896 pages[i]->handle = BLKBACK_INVALID_HANDLE; in xen_blkbk_map()
918 struct grant_page **pages = pending_req->indirect_pages; in xen_blkbk_parse_indirect() local
928 pages[i]->gref = req->u.indirect.indirect_grefs[i]; in xen_blkbk_parse_indirect()
930 rc = xen_blkbk_map(ring, pages, indirect_grefs, true); in xen_blkbk_parse_indirect()
941 segments = kmap_atomic(pages[n/SEGS_PER_INDIRECT_FRAME]->page); in xen_blkbk_parse_indirect()
962 xen_blkbk_unmap(ring, pages, indirect_grefs); in xen_blkbk_parse_indirect()
1199 struct grant_page **pages = pending_req->segments; in dispatch_rw_block_io() local
1262 pages[i]->gref = req->u.rw.seg[i].gref; in dispatch_rw_block_io()
1326 pages[i]->page, in dispatch_rw_block_io()