Lines Matching refs:pages
279 struct page *pages[BLKIF_MAX_SEGMENTS_PER_REQUEST]; in free_persistent_gnts() local
285 unmap_data.pages = pages; in free_persistent_gnts()
298 pages[segs_to_unmap] = persistent_gnt->page; in free_persistent_gnts()
306 put_free_pages(blkif, pages, segs_to_unmap); in free_persistent_gnts()
320 struct page *pages[BLKIF_MAX_SEGMENTS_PER_REQUEST]; in xen_blkbk_unmap_purged_grants() local
326 unmap_data.pages = pages; in xen_blkbk_unmap_purged_grants()
341 pages[segs_to_unmap] = persistent_gnt->page; in xen_blkbk_unmap_purged_grants()
346 put_free_pages(blkif, pages, segs_to_unmap); in xen_blkbk_unmap_purged_grants()
354 put_free_pages(blkif, pages, segs_to_unmap); in xen_blkbk_unmap_purged_grants()
677 struct grant_page **pages, in xen_blkbk_unmap_prepare() argument
685 if (pages[i]->persistent_gnt != NULL) { in xen_blkbk_unmap_prepare()
686 put_persistent_gnt(blkif, pages[i]->persistent_gnt); in xen_blkbk_unmap_prepare()
689 if (pages[i]->handle == BLKBACK_INVALID_HANDLE) in xen_blkbk_unmap_prepare()
691 unmap_pages[invcount] = pages[i]->page; in xen_blkbk_unmap_prepare()
692 gnttab_set_unmap_op(&unmap_ops[invcount], vaddr(pages[i]->page), in xen_blkbk_unmap_prepare()
693 GNTMAP_host_map, pages[i]->handle); in xen_blkbk_unmap_prepare()
694 pages[i]->handle = BLKBACK_INVALID_HANDLE; in xen_blkbk_unmap_prepare()
710 put_free_pages(blkif, data->pages, data->count); in xen_blkbk_unmap_and_respond_callback()
736 struct grant_page **pages = req->segments; in xen_blkbk_unmap_and_respond() local
739 invcount = xen_blkbk_unmap_prepare(blkif, pages, req->nr_segs, in xen_blkbk_unmap_and_respond()
746 work->pages = req->unmap_pages; in xen_blkbk_unmap_and_respond()
761 struct grant_page *pages[], in xen_blkbk_unmap() argument
772 invcount = xen_blkbk_unmap_prepare(blkif, pages, batch, in xen_blkbk_unmap()
779 pages += batch; in xen_blkbk_unmap()
785 struct grant_page *pages[], in xen_blkbk_map() argument
812 pages[i]->gref); in xen_blkbk_map()
819 pages[i]->page = persistent_gnt->page; in xen_blkbk_map()
820 pages[i]->persistent_gnt = persistent_gnt; in xen_blkbk_map()
822 if (get_free_page(blkif, &pages[i]->page)) in xen_blkbk_map()
824 addr = vaddr(pages[i]->page); in xen_blkbk_map()
825 pages_to_gnt[segs_to_map] = pages[i]->page; in xen_blkbk_map()
826 pages[i]->persistent_gnt = NULL; in xen_blkbk_map()
831 flags, pages[i]->gref, in xen_blkbk_map()
850 if (!pages[seg_idx]->persistent_gnt) { in xen_blkbk_map()
855 put_free_pages(blkif, &pages[seg_idx]->page, 1); in xen_blkbk_map()
856 pages[seg_idx]->handle = BLKBACK_INVALID_HANDLE; in xen_blkbk_map()
860 pages[seg_idx]->handle = map[new_map_idx].handle; in xen_blkbk_map()
882 persistent_gnt->page = pages[seg_idx]->page; in xen_blkbk_map()
889 pages[seg_idx]->persistent_gnt = persistent_gnt; in xen_blkbk_map()
936 struct grant_page **pages = pending_req->indirect_pages; in xen_blkbk_parse_indirect() local
946 pages[i]->gref = req->u.indirect.indirect_grefs[i]; in xen_blkbk_parse_indirect()
948 rc = xen_blkbk_map(blkif, pages, indirect_grefs, true); in xen_blkbk_parse_indirect()
959 segments = kmap_atomic(pages[n/SEGS_PER_INDIRECT_FRAME]->page); in xen_blkbk_parse_indirect()
980 xen_blkbk_unmap(blkif, pages, indirect_grefs); in xen_blkbk_parse_indirect()
1213 struct grant_page **pages = pending_req->segments; in dispatch_rw_block_io() local
1273 pages[i]->gref = req->u.rw.seg[i].gref; in dispatch_rw_block_io()
1337 pages[i]->page, in dispatch_rw_block_io()