Lines Matching defs:dreq

604 static void __unhash_deferred_req(struct cache_deferred_req *dreq)
606 hlist_del_init(&dreq->hash);
607 if (!list_empty(&dreq->recent)) {
608 list_del_init(&dreq->recent);
613 static void __hash_deferred_req(struct cache_deferred_req *dreq, struct cache_head *item)
617 INIT_LIST_HEAD(&dreq->recent);
618 hlist_add_head(&dreq->hash, &cache_defer_hash[hash]);
621 static void setup_deferral(struct cache_deferred_req *dreq,
626 dreq->item = item;
630 __hash_deferred_req(dreq, item);
634 list_add(&dreq->recent, &cache_defer_list);
646 static void cache_restart_thread(struct cache_deferred_req *dreq, int too_many)
649 container_of(dreq, struct thread_deferred_req, handle);
656 struct cache_deferred_req *dreq = &sleeper.handle;
659 dreq->revisit = cache_restart_thread;
661 setup_deferral(dreq, item, 0);
728 struct cache_deferred_req *dreq;
736 dreq = req->defer(req);
737 if (dreq == NULL)
739 setup_deferral(dreq, item, 1);
752 struct cache_deferred_req *dreq;
759 hlist_for_each_entry_safe(dreq, tmp, &cache_defer_hash[hash], hash)
760 if (dreq->item == item) {
761 __unhash_deferred_req(dreq);
762 list_add(&dreq->recent, &pending);
768 dreq = list_entry(pending.next, struct cache_deferred_req, recent);
769 list_del_init(&dreq->recent);
770 dreq->revisit(dreq, 0);
776 struct cache_deferred_req *dreq, *tmp;
781 list_for_each_entry_safe(dreq, tmp, &cache_defer_list, recent) {
782 if (dreq->owner == owner) {
783 __unhash_deferred_req(dreq);
784 list_add(&dreq->recent, &pending);
790 dreq = list_entry(pending.next, struct cache_deferred_req, recent);
791 list_del_init(&dreq->recent);
792 dreq->revisit(dreq, 1);