Lines Matching refs:gnt_list_entry

303 	struct grant *gnt_list_entry, *n;  in fill_grant_buffer()  local
307 gnt_list_entry = kzalloc(sizeof(struct grant), GFP_NOIO); in fill_grant_buffer()
308 if (!gnt_list_entry) in fill_grant_buffer()
314 kfree(gnt_list_entry); in fill_grant_buffer()
317 gnt_list_entry->page = granted_page; in fill_grant_buffer()
320 gnt_list_entry->gref = GRANT_INVALID_REF; in fill_grant_buffer()
321 list_add(&gnt_list_entry->node, &rinfo->grants); in fill_grant_buffer()
328 list_for_each_entry_safe(gnt_list_entry, n, in fill_grant_buffer()
330 list_del(&gnt_list_entry->node); in fill_grant_buffer()
332 __free_page(gnt_list_entry->page); in fill_grant_buffer()
333 kfree(gnt_list_entry); in fill_grant_buffer()
342 struct grant *gnt_list_entry; in get_free_grant() local
345 gnt_list_entry = list_first_entry(&rinfo->grants, struct grant, in get_free_grant()
347 list_del(&gnt_list_entry->node); in get_free_grant()
349 if (gnt_list_entry->gref != GRANT_INVALID_REF) in get_free_grant()
352 return gnt_list_entry; in get_free_grant()
355 static inline void grant_foreign_access(const struct grant *gnt_list_entry, in grant_foreign_access() argument
358 gnttab_page_grant_foreign_access_ref_one(gnt_list_entry->gref, in grant_foreign_access()
360 gnt_list_entry->page, in grant_foreign_access()
368 struct grant *gnt_list_entry = get_free_grant(rinfo); in get_grant() local
371 if (gnt_list_entry->gref != GRANT_INVALID_REF) in get_grant()
372 return gnt_list_entry; in get_grant()
375 gnt_list_entry->gref = gnttab_claim_grant_reference(gref_head); in get_grant()
376 BUG_ON(gnt_list_entry->gref == -ENOSPC); in get_grant()
378 grant_foreign_access(gnt_list_entry, info); in get_grant()
381 gnttab_grant_foreign_access_ref(gnt_list_entry->gref, in get_grant()
386 return gnt_list_entry; in get_grant()
392 struct grant *gnt_list_entry = get_free_grant(rinfo); in get_indirect_grant() local
395 if (gnt_list_entry->gref != GRANT_INVALID_REF) in get_indirect_grant()
396 return gnt_list_entry; in get_indirect_grant()
399 gnt_list_entry->gref = gnttab_claim_grant_reference(gref_head); in get_indirect_grant()
400 BUG_ON(gnt_list_entry->gref == -ENOSPC); in get_indirect_grant()
409 gnt_list_entry->page = indirect_page; in get_indirect_grant()
411 grant_foreign_access(gnt_list_entry, info); in get_indirect_grant()
413 return gnt_list_entry; in get_indirect_grant()
599 struct grant *gnt_list_entry; in blkif_setup_rw_req_grant() local
629 gnt_list_entry = get_indirect_grant(&setup->gref_head, rinfo); in blkif_setup_rw_req_grant()
630 shadow->indirect_grants[n] = gnt_list_entry; in blkif_setup_rw_req_grant()
631 setup->segments = kmap_atomic(gnt_list_entry->page); in blkif_setup_rw_req_grant()
632 ring_req->u.indirect.indirect_grefs[n] = gnt_list_entry->gref; in blkif_setup_rw_req_grant()
635 gnt_list_entry = get_grant(&setup->gref_head, gfn, rinfo); in blkif_setup_rw_req_grant()
636 ref = gnt_list_entry->gref; in blkif_setup_rw_req_grant()
641 shadow->grants_used[setup->grant_idx] = gnt_list_entry; in blkif_setup_rw_req_grant()
646 shared_data = kmap_atomic(gnt_list_entry->page); in blkif_setup_rw_req_grant()
2675 struct grant *gnt_list_entry, *tmp; in purge_persistent_grants() local
2684 list_for_each_entry_safe(gnt_list_entry, tmp, &rinfo->grants, in purge_persistent_grants()
2686 if (gnt_list_entry->gref == GRANT_INVALID_REF || in purge_persistent_grants()
2687 gnttab_query_foreign_access(gnt_list_entry->gref)) in purge_persistent_grants()
2690 list_del(&gnt_list_entry->node); in purge_persistent_grants()
2691 gnttab_end_foreign_access(gnt_list_entry->gref, 0, 0UL); in purge_persistent_grants()
2693 gnt_list_entry->gref = GRANT_INVALID_REF; in purge_persistent_grants()
2694 list_add_tail(&gnt_list_entry->node, &rinfo->grants); in purge_persistent_grants()