Lines Matching refs:pages
272 struct page *pages[BLKIF_MAX_SEGMENTS_PER_REQUEST]; in free_persistent_gnts() local
278 unmap_data.pages = pages; in free_persistent_gnts()
291 pages[segs_to_unmap] = persistent_gnt->page; in free_persistent_gnts()
299 put_free_pages(blkif, pages, segs_to_unmap); in free_persistent_gnts()
313 struct page *pages[BLKIF_MAX_SEGMENTS_PER_REQUEST]; in xen_blkbk_unmap_purged_grants() local
319 unmap_data.pages = pages; in xen_blkbk_unmap_purged_grants()
334 pages[segs_to_unmap] = persistent_gnt->page; in xen_blkbk_unmap_purged_grants()
339 put_free_pages(blkif, pages, segs_to_unmap); in xen_blkbk_unmap_purged_grants()
347 put_free_pages(blkif, pages, segs_to_unmap); in xen_blkbk_unmap_purged_grants()
670 struct grant_page **pages, in xen_blkbk_unmap_prepare() argument
678 if (pages[i]->persistent_gnt != NULL) { in xen_blkbk_unmap_prepare()
679 put_persistent_gnt(blkif, pages[i]->persistent_gnt); in xen_blkbk_unmap_prepare()
682 if (pages[i]->handle == BLKBACK_INVALID_HANDLE) in xen_blkbk_unmap_prepare()
684 unmap_pages[invcount] = pages[i]->page; in xen_blkbk_unmap_prepare()
685 gnttab_set_unmap_op(&unmap_ops[invcount], vaddr(pages[i]->page), in xen_blkbk_unmap_prepare()
686 GNTMAP_host_map, pages[i]->handle); in xen_blkbk_unmap_prepare()
687 pages[i]->handle = BLKBACK_INVALID_HANDLE; in xen_blkbk_unmap_prepare()
703 put_free_pages(blkif, data->pages, data->count); in xen_blkbk_unmap_and_respond_callback()
729 struct grant_page **pages = req->segments; in xen_blkbk_unmap_and_respond() local
732 invcount = xen_blkbk_unmap_prepare(blkif, pages, req->nr_pages, in xen_blkbk_unmap_and_respond()
739 work->pages = req->unmap_pages; in xen_blkbk_unmap_and_respond()
754 struct grant_page *pages[], in xen_blkbk_unmap() argument
765 invcount = xen_blkbk_unmap_prepare(blkif, pages, batch, in xen_blkbk_unmap()
772 pages += batch; in xen_blkbk_unmap()
778 struct grant_page *pages[], in xen_blkbk_map() argument
805 pages[i]->gref); in xen_blkbk_map()
812 pages[i]->page = persistent_gnt->page; in xen_blkbk_map()
813 pages[i]->persistent_gnt = persistent_gnt; in xen_blkbk_map()
815 if (get_free_page(blkif, &pages[i]->page)) in xen_blkbk_map()
817 addr = vaddr(pages[i]->page); in xen_blkbk_map()
818 pages_to_gnt[segs_to_map] = pages[i]->page; in xen_blkbk_map()
819 pages[i]->persistent_gnt = NULL; in xen_blkbk_map()
824 flags, pages[i]->gref, in xen_blkbk_map()
843 if (!pages[seg_idx]->persistent_gnt) { in xen_blkbk_map()
848 put_free_pages(blkif, &pages[seg_idx]->page, 1); in xen_blkbk_map()
849 pages[seg_idx]->handle = BLKBACK_INVALID_HANDLE; in xen_blkbk_map()
853 pages[seg_idx]->handle = map[new_map_idx].handle; in xen_blkbk_map()
875 persistent_gnt->page = pages[seg_idx]->page; in xen_blkbk_map()
882 pages[seg_idx]->persistent_gnt = persistent_gnt; in xen_blkbk_map()
929 struct grant_page **pages = pending_req->indirect_pages; in xen_blkbk_parse_indirect() local
939 pages[i]->gref = req->u.indirect.indirect_grefs[i]; in xen_blkbk_parse_indirect()
941 rc = xen_blkbk_map(blkif, pages, indirect_grefs, true); in xen_blkbk_parse_indirect()
950 segments = kmap_atomic(pages[n/SEGS_PER_INDIRECT_FRAME]->page); in xen_blkbk_parse_indirect()
968 xen_blkbk_unmap(blkif, pages, indirect_grefs); in xen_blkbk_parse_indirect()
1201 struct grant_page **pages = pending_req->segments; in dispatch_rw_block_io() local
1260 pages[i]->gref = req->u.rw.seg[i].gref; in dispatch_rw_block_io()
1324 pages[i]->page, in dispatch_rw_block_io()