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()
683 struct grant_page **pages, in xen_blkbk_unmap_prepare() argument
691 if (pages[i]->persistent_gnt != NULL) { in xen_blkbk_unmap_prepare()
692 put_persistent_gnt(blkif, pages[i]->persistent_gnt); in xen_blkbk_unmap_prepare()
695 if (pages[i]->handle == BLKBACK_INVALID_HANDLE) in xen_blkbk_unmap_prepare()
697 unmap_pages[invcount] = pages[i]->page; in xen_blkbk_unmap_prepare()
698 gnttab_set_unmap_op(&unmap_ops[invcount], vaddr(pages[i]->page), in xen_blkbk_unmap_prepare()
699 GNTMAP_host_map, pages[i]->handle); in xen_blkbk_unmap_prepare()
700 pages[i]->handle = BLKBACK_INVALID_HANDLE; in xen_blkbk_unmap_prepare()
716 put_free_pages(blkif, data->pages, data->count); in xen_blkbk_unmap_and_respond_callback()
742 struct grant_page **pages = req->segments; in xen_blkbk_unmap_and_respond() local
745 invcount = xen_blkbk_unmap_prepare(blkif, pages, req->nr_segs, in xen_blkbk_unmap_and_respond()
752 work->pages = req->unmap_pages; in xen_blkbk_unmap_and_respond()
767 struct grant_page *pages[], in xen_blkbk_unmap() argument
778 invcount = xen_blkbk_unmap_prepare(blkif, pages, batch, in xen_blkbk_unmap()
785 pages += batch; in xen_blkbk_unmap()
791 struct grant_page *pages[], in xen_blkbk_map() argument
818 pages[i]->gref); in xen_blkbk_map()
825 pages[i]->page = persistent_gnt->page; in xen_blkbk_map()
826 pages[i]->persistent_gnt = persistent_gnt; in xen_blkbk_map()
828 if (get_free_page(blkif, &pages[i]->page)) { in xen_blkbk_map()
833 addr = vaddr(pages[i]->page); in xen_blkbk_map()
834 pages_to_gnt[segs_to_map] = pages[i]->page; in xen_blkbk_map()
835 pages[i]->persistent_gnt = NULL; in xen_blkbk_map()
840 flags, pages[i]->gref, in xen_blkbk_map()
857 if (!pages[seg_idx]->persistent_gnt) { in xen_blkbk_map()
862 put_free_pages(blkif, &pages[seg_idx]->page, 1); in xen_blkbk_map()
863 pages[seg_idx]->handle = BLKBACK_INVALID_HANDLE; in xen_blkbk_map()
867 pages[seg_idx]->handle = map[new_map_idx].handle; in xen_blkbk_map()
889 persistent_gnt->page = pages[seg_idx]->page; in xen_blkbk_map()
896 pages[seg_idx]->persistent_gnt = persistent_gnt; in xen_blkbk_map()
923 pages[i]->persistent_gnt = NULL; in xen_blkbk_map()
924 pages[i]->handle = BLKBACK_INVALID_HANDLE; in xen_blkbk_map()
946 struct grant_page **pages = pending_req->indirect_pages; in xen_blkbk_parse_indirect() local
956 pages[i]->gref = req->u.indirect.indirect_grefs[i]; in xen_blkbk_parse_indirect()
958 rc = xen_blkbk_map(blkif, pages, indirect_grefs, true); in xen_blkbk_parse_indirect()
969 segments = kmap_atomic(pages[n/SEGS_PER_INDIRECT_FRAME]->page); in xen_blkbk_parse_indirect()
990 xen_blkbk_unmap(blkif, pages, indirect_grefs); in xen_blkbk_parse_indirect()
1226 struct grant_page **pages = pending_req->segments; in dispatch_rw_block_io() local
1286 pages[i]->gref = req->u.rw.seg[i].gref; in dispatch_rw_block_io()
1350 pages[i]->page, in dispatch_rw_block_io()