• Home
  • Raw
  • Download

Lines Matching refs:rp

783 	struct cache_reader *rp = filp->private_data;  in cache_read()  local
796 while (rp->q.list.next != &cd->queue && in cache_read()
797 list_entry(rp->q.list.next, struct cache_queue, list) in cache_read()
799 struct list_head *next = rp->q.list.next; in cache_read()
800 list_move(&rp->q.list, next); in cache_read()
802 if (rp->q.list.next == &cd->queue) { in cache_read()
805 WARN_ON_ONCE(rp->offset); in cache_read()
808 rq = container_of(rp->q.list.next, struct cache_request, q.list); in cache_read()
810 if (rp->offset == 0) in cache_read()
821 if (rp->offset == 0 && !test_bit(CACHE_PENDING, &rq->item->flags)) { in cache_read()
824 list_move(&rp->q.list, &rq->q.list); in cache_read()
827 if (rp->offset + count > rq->len) in cache_read()
828 count = rq->len - rp->offset; in cache_read()
830 if (copy_to_user(buf, rq->buf + rp->offset, count)) in cache_read()
832 rp->offset += count; in cache_read()
833 if (rp->offset >= rq->len) { in cache_read()
834 rp->offset = 0; in cache_read()
836 list_move(&rp->q.list, &rq->q.list); in cache_read()
842 if (rp->offset == 0) { in cache_read()
942 struct cache_reader *rp = filp->private_data; in cache_poll() local
950 if (!rp) in cache_poll()
955 for (cq= &rp->q; &cq->list != &cd->queue; in cache_poll()
970 struct cache_reader *rp = filp->private_data; in cache_ioctl() local
973 if (cmd != FIONREAD || !rp) in cache_ioctl()
981 for (cq= &rp->q; &cq->list != &cd->queue; in cache_ioctl()
986 len = cr->len - rp->offset; in cache_ioctl()
997 struct cache_reader *rp = NULL; in cache_open() local
1003 rp = kmalloc(sizeof(*rp), GFP_KERNEL); in cache_open()
1004 if (!rp) { in cache_open()
1008 rp->offset = 0; in cache_open()
1009 rp->q.reader = 1; in cache_open()
1012 list_add(&rp->q.list, &cd->queue); in cache_open()
1015 filp->private_data = rp; in cache_open()
1022 struct cache_reader *rp = filp->private_data; in cache_release() local
1024 if (rp) { in cache_release()
1026 if (rp->offset) { in cache_release()
1028 for (cq= &rp->q; &cq->list != &cd->queue; in cache_release()
1035 rp->offset = 0; in cache_release()
1037 list_del(&rp->q.list); in cache_release()
1041 kfree(rp); in cache_release()