Lines Matching refs:rq
760 struct cache_request *rq; in cache_read() local
784 rq = container_of(rp->q.list.next, struct cache_request, q.list); in cache_read()
785 WARN_ON_ONCE(rq->q.reader); in cache_read()
787 rq->readers++; in cache_read()
790 if (rq->len == 0) { in cache_read()
791 err = cache_request(cd, rq); in cache_read()
794 rq->len = err; in cache_read()
797 if (rp->offset == 0 && !test_bit(CACHE_PENDING, &rq->item->flags)) { in cache_read()
800 list_move(&rp->q.list, &rq->q.list); in cache_read()
803 if (rp->offset + count > rq->len) in cache_read()
804 count = rq->len - rp->offset; in cache_read()
806 if (copy_to_user(buf, rq->buf + rp->offset, count)) in cache_read()
809 if (rp->offset >= rq->len) { in cache_read()
812 list_move(&rp->q.list, &rq->q.list); in cache_read()
821 rq->readers--; in cache_read()
822 if (rq->readers == 0 && in cache_read()
823 !test_bit(CACHE_PENDING, &rq->item->flags)) { in cache_read()
824 list_del(&rq->q.list); in cache_read()
826 cache_put(rq->item, cd); in cache_read()
827 kfree(rq->buf); in cache_read()
828 kfree(rq); in cache_read()