Symbol: persistent_gnt
drivers/block/xen-blkback/blkback.c
135
static inline bool persistent_gnt_timeout(struct persistent_gnt *persistent_gnt)
drivers/block/xen-blkback/blkback.c
137
return pgrant_timeout && (jiffies - persistent_gnt->last_used >=
drivers/block/xen-blkback/blkback.c
169
struct persistent_gnt *persistent_gnt)
drivers/block/xen-blkback/blkback.c
172
struct persistent_gnt *this;
drivers/block/xen-blkback/blkback.c
183
this = container_of(*new, struct persistent_gnt, node);
drivers/block/xen-blkback/blkback.c
186
if (persistent_gnt->gnt < this->gnt)
drivers/block/xen-blkback/blkback.c
188
else if (persistent_gnt->gnt > this->gnt)
drivers/block/xen-blkback/blkback.c
196
persistent_gnt->active = true;
drivers/block/xen-blkback/blkback.c
198
rb_link_node(&(persistent_gnt->node), parent, new);
drivers/block/xen-blkback/blkback.c
199
rb_insert_color(&(persistent_gnt->node), &ring->persistent_gnts);
drivers/block/xen-blkback/blkback.c
205
static struct persistent_gnt *get_persistent_gnt(struct xen_blkif_ring *ring,
drivers/block/xen-blkback/blkback.c
208
struct persistent_gnt *data;
drivers/block/xen-blkback/blkback.c
213
data = container_of(node, struct persistent_gnt, node);
drivers/block/xen-blkback/blkback.c
233
struct persistent_gnt *persistent_gnt)
drivers/block/xen-blkback/blkback.c
235
if (!persistent_gnt->active)
drivers/block/xen-blkback/blkback.c
237
persistent_gnt->last_used = jiffies;
drivers/block/xen-blkback/blkback.c
238
persistent_gnt->active = false;
drivers/block/xen-blkback/blkback.c
247
struct persistent_gnt *persistent_gnt;
drivers/block/xen-blkback/blkback.c
259
foreach_grant_safe(persistent_gnt, n, root, node) {
drivers/block/xen-blkback/blkback.c
260
BUG_ON(persistent_gnt->handle ==
drivers/block/xen-blkback/blkback.c
264
persistent_gnt->page)),
drivers/block/xen-blkback/blkback.c
266
persistent_gnt->handle);
drivers/block/xen-blkback/blkback.c
268
pages[segs_to_unmap] = persistent_gnt->page;
drivers/block/xen-blkback/blkback.c
271
!rb_next(&persistent_gnt->node)) {
drivers/block/xen-blkback/blkback.c
281
rb_erase(&persistent_gnt->node, root);
drivers/block/xen-blkback/blkback.c
282
kfree(persistent_gnt);
drivers/block/xen-blkback/blkback.c
294
struct persistent_gnt *persistent_gnt;
drivers/block/xen-blkback/blkback.c
304
persistent_gnt = list_first_entry(&ring->persistent_purge_list,
drivers/block/xen-blkback/blkback.c
305
struct persistent_gnt,
drivers/block/xen-blkback/blkback.c
307
list_del(&persistent_gnt->remove_node);
drivers/block/xen-blkback/blkback.c
310
vaddr(persistent_gnt->page),
drivers/block/xen-blkback/blkback.c
312
persistent_gnt->handle);
drivers/block/xen-blkback/blkback.c
314
pages[segs_to_unmap] = persistent_gnt->page;
drivers/block/xen-blkback/blkback.c
323
kfree(persistent_gnt);
drivers/block/xen-blkback/blkback.c
334
struct persistent_gnt *persistent_gnt;
drivers/block/xen-blkback/blkback.c
371
foreach_grant_safe(persistent_gnt, n, root, node) {
drivers/block/xen-blkback/blkback.c
372
BUG_ON(persistent_gnt->handle ==
drivers/block/xen-blkback/blkback.c
375
if (persistent_gnt->active)
drivers/block/xen-blkback/blkback.c
377
if (!scan_used && !persistent_gnt_timeout(persistent_gnt))
drivers/block/xen-blkback/blkback.c
382
rb_erase(&persistent_gnt->node, root);
drivers/block/xen-blkback/blkback.c
383
list_add(&persistent_gnt->remove_node,
drivers/block/xen-blkback/blkback.c
655
if (pages[i]->persistent_gnt != NULL) {
drivers/block/xen-blkback/blkback.c
656
put_persistent_gnt(ring, pages[i]->persistent_gnt);
drivers/block/xen-blkback/blkback.c
762
struct persistent_gnt *persistent_gnt = NULL;
drivers/block/xen-blkback/blkback.c
783
persistent_gnt = get_persistent_gnt(
drivers/block/xen-blkback/blkback.c
788
if (persistent_gnt) {
drivers/block/xen-blkback/blkback.c
793
pages[i]->page = persistent_gnt->page;
drivers/block/xen-blkback/blkback.c
794
pages[i]->persistent_gnt = persistent_gnt;
drivers/block/xen-blkback/blkback.c
806
pages[i]->persistent_gnt = NULL;
drivers/block/xen-blkback/blkback.c
828
if (!pages[seg_idx]->persistent_gnt) {
drivers/block/xen-blkback/blkback.c
849
persistent_gnt = kmalloc_obj(struct persistent_gnt);
drivers/block/xen-blkback/blkback.c
850
if (!persistent_gnt) {
drivers/block/xen-blkback/blkback.c
858
persistent_gnt->gnt = map[new_map_idx].ref;
drivers/block/xen-blkback/blkback.c
859
persistent_gnt->handle = map[new_map_idx].handle;
drivers/block/xen-blkback/blkback.c
860
persistent_gnt->page = pages[seg_idx]->page;
drivers/block/xen-blkback/blkback.c
862
persistent_gnt)) {
drivers/block/xen-blkback/blkback.c
863
kfree(persistent_gnt);
drivers/block/xen-blkback/blkback.c
864
persistent_gnt = NULL;
drivers/block/xen-blkback/blkback.c
867
pages[seg_idx]->persistent_gnt = persistent_gnt;
drivers/block/xen-blkback/blkback.c
869
persistent_gnt->gnt, ring->persistent_gnt_c,
drivers/block/xen-blkback/blkback.c
894
pages[i]->persistent_gnt = NULL;
drivers/block/xen-blkback/common.h
333
struct persistent_gnt *persistent_gnt;
drivers/block/xen-blkfront.c
1209
struct grant *persistent_gnt, *n;
drivers/block/xen-blkfront.c
1229
list_for_each_entry_safe(persistent_gnt, n,
drivers/block/xen-blkfront.c
1231
list_del(&persistent_gnt->node);
drivers/block/xen-blkfront.c
1232
if (persistent_gnt->gref != INVALID_GRANT_REF) {
drivers/block/xen-blkfront.c
1233
gnttab_end_foreign_access(persistent_gnt->gref,
drivers/block/xen-blkfront.c
1238
__free_page(persistent_gnt->page);
drivers/block/xen-blkfront.c
1239
kfree(persistent_gnt);
drivers/block/xen-blkfront.c
1256
persistent_gnt = rinfo->shadow[i].grants_used[j];
drivers/block/xen-blkfront.c
1257
gnttab_end_foreign_access(persistent_gnt->gref, NULL);
drivers/block/xen-blkfront.c
1259
__free_page(persistent_gnt->page);
drivers/block/xen-blkfront.c
1260
kfree(persistent_gnt);
drivers/block/xen-blkfront.c
1271
persistent_gnt = rinfo->shadow[i].indirect_grants[j];
drivers/block/xen-blkfront.c
1272
gnttab_end_foreign_access(persistent_gnt->gref, NULL);
drivers/block/xen-blkfront.c
1273
__free_page(persistent_gnt->page);
drivers/block/xen-blkfront.c
1274
kfree(persistent_gnt);