• Home
  • Raw
  • Download

Lines Matching refs:rp

768 	struct cache_reader *rp = filp->private_data;  in cache_read()  local
781 while (rp->q.list.next != &cd->queue && in cache_read()
782 list_entry(rp->q.list.next, struct cache_queue, list) in cache_read()
784 struct list_head *next = rp->q.list.next; in cache_read()
785 list_move(&rp->q.list, next); in cache_read()
787 if (rp->q.list.next == &cd->queue) { in cache_read()
790 WARN_ON_ONCE(rp->offset); in cache_read()
793 rq = container_of(rp->q.list.next, struct cache_request, q.list); in cache_read()
795 if (rp->offset == 0) in cache_read()
806 if (rp->offset == 0 && !test_bit(CACHE_PENDING, &rq->item->flags)) { in cache_read()
809 list_move(&rp->q.list, &rq->q.list); in cache_read()
812 if (rp->offset + count > rq->len) in cache_read()
813 count = rq->len - rp->offset; in cache_read()
815 if (copy_to_user(buf, rq->buf + rp->offset, count)) in cache_read()
817 rp->offset += count; in cache_read()
818 if (rp->offset >= rq->len) { in cache_read()
819 rp->offset = 0; in cache_read()
821 list_move(&rp->q.list, &rq->q.list); in cache_read()
827 if (rp->offset == 0) { in cache_read()
927 struct cache_reader *rp = filp->private_data; in cache_poll() local
935 if (!rp) in cache_poll()
940 for (cq= &rp->q; &cq->list != &cd->queue; in cache_poll()
955 struct cache_reader *rp = filp->private_data; in cache_ioctl() local
958 if (cmd != FIONREAD || !rp) in cache_ioctl()
966 for (cq= &rp->q; &cq->list != &cd->queue; in cache_ioctl()
971 len = cr->len - rp->offset; in cache_ioctl()
982 struct cache_reader *rp = NULL; in cache_open() local
988 rp = kmalloc(sizeof(*rp), GFP_KERNEL); in cache_open()
989 if (!rp) { in cache_open()
993 rp->offset = 0; in cache_open()
994 rp->q.reader = 1; in cache_open()
997 list_add(&rp->q.list, &cd->queue); in cache_open()
1000 filp->private_data = rp; in cache_open()
1007 struct cache_reader *rp = filp->private_data; in cache_release() local
1009 if (rp) { in cache_release()
1011 if (rp->offset) { in cache_release()
1013 for (cq= &rp->q; &cq->list != &cd->queue; in cache_release()
1020 rp->offset = 0; in cache_release()
1022 list_del(&rp->q.list); in cache_release()
1026 kfree(rp); in cache_release()