persistent_gnt 138 drivers/block/xen-blkback/blkback.c static inline bool persistent_gnt_timeout(struct persistent_gnt *persistent_gnt) persistent_gnt 141 drivers/block/xen-blkback/blkback.c (jiffies - persistent_gnt->last_used >= persistent_gnt 231 drivers/block/xen-blkback/blkback.c struct persistent_gnt *persistent_gnt) persistent_gnt 234 drivers/block/xen-blkback/blkback.c struct persistent_gnt *this; persistent_gnt 245 drivers/block/xen-blkback/blkback.c this = container_of(*new, struct persistent_gnt, node); persistent_gnt 248 drivers/block/xen-blkback/blkback.c if (persistent_gnt->gnt < this->gnt) persistent_gnt 250 drivers/block/xen-blkback/blkback.c else if (persistent_gnt->gnt > this->gnt) persistent_gnt 258 drivers/block/xen-blkback/blkback.c persistent_gnt->active = true; persistent_gnt 260 drivers/block/xen-blkback/blkback.c rb_link_node(&(persistent_gnt->node), parent, new); persistent_gnt 261 drivers/block/xen-blkback/blkback.c rb_insert_color(&(persistent_gnt->node), &ring->persistent_gnts); persistent_gnt 267 drivers/block/xen-blkback/blkback.c static struct persistent_gnt *get_persistent_gnt(struct xen_blkif_ring *ring, persistent_gnt 270 drivers/block/xen-blkback/blkback.c struct persistent_gnt *data; persistent_gnt 275 drivers/block/xen-blkback/blkback.c data = container_of(node, struct persistent_gnt, node); persistent_gnt 295 drivers/block/xen-blkback/blkback.c struct persistent_gnt *persistent_gnt) persistent_gnt 297 drivers/block/xen-blkback/blkback.c if (!persistent_gnt->active) persistent_gnt 299 drivers/block/xen-blkback/blkback.c persistent_gnt->last_used = jiffies; persistent_gnt 300 drivers/block/xen-blkback/blkback.c persistent_gnt->active = false; persistent_gnt 309 drivers/block/xen-blkback/blkback.c struct persistent_gnt *persistent_gnt; persistent_gnt 318 drivers/block/xen-blkback/blkback.c foreach_grant_safe(persistent_gnt, n, root, node) { persistent_gnt 319 drivers/block/xen-blkback/blkback.c BUG_ON(persistent_gnt->handle == persistent_gnt 323 drivers/block/xen-blkback/blkback.c persistent_gnt->page)), persistent_gnt 325 drivers/block/xen-blkback/blkback.c persistent_gnt->handle); persistent_gnt 327 drivers/block/xen-blkback/blkback.c pages[segs_to_unmap] = persistent_gnt->page; persistent_gnt 330 drivers/block/xen-blkback/blkback.c !rb_next(&persistent_gnt->node)) { persistent_gnt 339 drivers/block/xen-blkback/blkback.c rb_erase(&persistent_gnt->node, root); persistent_gnt 340 drivers/block/xen-blkback/blkback.c kfree(persistent_gnt); persistent_gnt 350 drivers/block/xen-blkback/blkback.c struct persistent_gnt *persistent_gnt; persistent_gnt 360 drivers/block/xen-blkback/blkback.c persistent_gnt = list_first_entry(&ring->persistent_purge_list, persistent_gnt 361 drivers/block/xen-blkback/blkback.c struct persistent_gnt, persistent_gnt 363 drivers/block/xen-blkback/blkback.c list_del(&persistent_gnt->remove_node); persistent_gnt 366 drivers/block/xen-blkback/blkback.c vaddr(persistent_gnt->page), persistent_gnt 368 drivers/block/xen-blkback/blkback.c persistent_gnt->handle); persistent_gnt 370 drivers/block/xen-blkback/blkback.c pages[segs_to_unmap] = persistent_gnt->page; persistent_gnt 378 drivers/block/xen-blkback/blkback.c kfree(persistent_gnt); persistent_gnt 389 drivers/block/xen-blkback/blkback.c struct persistent_gnt *persistent_gnt; persistent_gnt 427 drivers/block/xen-blkback/blkback.c foreach_grant_safe(persistent_gnt, n, root, node) { persistent_gnt 428 drivers/block/xen-blkback/blkback.c BUG_ON(persistent_gnt->handle == persistent_gnt 431 drivers/block/xen-blkback/blkback.c if (persistent_gnt->active) persistent_gnt 433 drivers/block/xen-blkback/blkback.c if (!scan_used && !persistent_gnt_timeout(persistent_gnt)) persistent_gnt 438 drivers/block/xen-blkback/blkback.c rb_erase(&persistent_gnt->node, root); persistent_gnt 439 drivers/block/xen-blkback/blkback.c list_add(&persistent_gnt->remove_node, persistent_gnt 704 drivers/block/xen-blkback/blkback.c if (pages[i]->persistent_gnt != NULL) { persistent_gnt 705 drivers/block/xen-blkback/blkback.c put_persistent_gnt(ring, pages[i]->persistent_gnt); persistent_gnt 810 drivers/block/xen-blkback/blkback.c struct persistent_gnt *persistent_gnt = NULL; persistent_gnt 831 drivers/block/xen-blkback/blkback.c persistent_gnt = get_persistent_gnt( persistent_gnt 836 drivers/block/xen-blkback/blkback.c if (persistent_gnt) { persistent_gnt 841 drivers/block/xen-blkback/blkback.c pages[i]->page = persistent_gnt->page; persistent_gnt 842 drivers/block/xen-blkback/blkback.c pages[i]->persistent_gnt = persistent_gnt; persistent_gnt 848 drivers/block/xen-blkback/blkback.c pages[i]->persistent_gnt = NULL; persistent_gnt 872 drivers/block/xen-blkback/blkback.c if (!pages[seg_idx]->persistent_gnt) { persistent_gnt 892 drivers/block/xen-blkback/blkback.c persistent_gnt = kmalloc(sizeof(struct persistent_gnt), persistent_gnt 894 drivers/block/xen-blkback/blkback.c if (!persistent_gnt) { persistent_gnt 902 drivers/block/xen-blkback/blkback.c persistent_gnt->gnt = map[new_map_idx].ref; persistent_gnt 903 drivers/block/xen-blkback/blkback.c persistent_gnt->handle = map[new_map_idx].handle; persistent_gnt 904 drivers/block/xen-blkback/blkback.c persistent_gnt->page = pages[seg_idx]->page; persistent_gnt 906 drivers/block/xen-blkback/blkback.c persistent_gnt)) { persistent_gnt 907 drivers/block/xen-blkback/blkback.c kfree(persistent_gnt); persistent_gnt 908 drivers/block/xen-blkback/blkback.c persistent_gnt = NULL; persistent_gnt 911 drivers/block/xen-blkback/blkback.c pages[seg_idx]->persistent_gnt = persistent_gnt; persistent_gnt 913 drivers/block/xen-blkback/blkback.c persistent_gnt->gnt, ring->persistent_gnt_c, persistent_gnt 331 drivers/block/xen-blkback/common.h struct persistent_gnt *persistent_gnt; persistent_gnt 1245 drivers/block/xen-blkfront.c struct grant *persistent_gnt, *n; persistent_gnt 1265 drivers/block/xen-blkfront.c list_for_each_entry_safe(persistent_gnt, n, persistent_gnt 1267 drivers/block/xen-blkfront.c list_del(&persistent_gnt->node); persistent_gnt 1268 drivers/block/xen-blkfront.c if (persistent_gnt->gref != GRANT_INVALID_REF) { persistent_gnt 1269 drivers/block/xen-blkfront.c gnttab_end_foreign_access(persistent_gnt->gref, persistent_gnt 1274 drivers/block/xen-blkfront.c __free_page(persistent_gnt->page); persistent_gnt 1275 drivers/block/xen-blkfront.c kfree(persistent_gnt); persistent_gnt 1292 drivers/block/xen-blkfront.c persistent_gnt = rinfo->shadow[i].grants_used[j]; persistent_gnt 1293 drivers/block/xen-blkfront.c gnttab_end_foreign_access(persistent_gnt->gref, 0, 0UL); persistent_gnt 1295 drivers/block/xen-blkfront.c __free_page(persistent_gnt->page); persistent_gnt 1296 drivers/block/xen-blkfront.c kfree(persistent_gnt); persistent_gnt 1307 drivers/block/xen-blkfront.c persistent_gnt = rinfo->shadow[i].indirect_grants[j]; persistent_gnt 1308 drivers/block/xen-blkfront.c gnttab_end_foreign_access(persistent_gnt->gref, 0, 0UL); persistent_gnt 1309 drivers/block/xen-blkfront.c __free_page(persistent_gnt->page); persistent_gnt 1310 drivers/block/xen-blkfront.c kfree(persistent_gnt);