Lines Matching refs:rq
767 struct cache_request *rq; in cache_read() local
791 rq = container_of(rp->q.list.next, struct cache_request, q.list); in cache_read()
792 WARN_ON_ONCE(rq->q.reader); in cache_read()
794 rq->readers++; in cache_read()
797 if (rq->len == 0) { in cache_read()
798 err = cache_request(cd, rq); in cache_read()
801 rq->len = err; in cache_read()
804 if (rp->offset == 0 && !test_bit(CACHE_PENDING, &rq->item->flags)) { in cache_read()
807 list_move(&rp->q.list, &rq->q.list); in cache_read()
810 if (rp->offset + count > rq->len) in cache_read()
811 count = rq->len - rp->offset; in cache_read()
813 if (copy_to_user(buf, rq->buf + rp->offset, count)) in cache_read()
816 if (rp->offset >= rq->len) { in cache_read()
819 list_move(&rp->q.list, &rq->q.list); in cache_read()
828 rq->readers--; in cache_read()
829 if (rq->readers == 0 && in cache_read()
830 !test_bit(CACHE_PENDING, &rq->item->flags)) { in cache_read()
831 list_del(&rq->q.list); in cache_read()
833 cache_put(rq->item, cd); in cache_read()
834 kfree(rq->buf); in cache_read()
835 kfree(rq); in cache_read()