Lines Matching refs:vbr
69 static inline blk_status_t virtblk_result(struct virtblk_req *vbr) in virtblk_result() argument
71 switch (vbr->status) { in virtblk_result()
88 static int virtblk_add_req_scsi(struct virtqueue *vq, struct virtblk_req *vbr, in virtblk_add_req_scsi() argument
94 sg_init_one(&hdr, &vbr->out_hdr, sizeof(vbr->out_hdr)); in virtblk_add_req_scsi()
96 sg_init_one(&cmd, vbr->sreq.cmd, vbr->sreq.cmd_len); in virtblk_add_req_scsi()
100 if (vbr->out_hdr.type & cpu_to_virtio32(vq->vdev, VIRTIO_BLK_T_OUT)) in virtblk_add_req_scsi()
106 sg_init_one(&sense, vbr->sense, SCSI_SENSE_BUFFERSIZE); in virtblk_add_req_scsi()
108 sg_init_one(&inhdr, &vbr->in_hdr, sizeof(vbr->in_hdr)); in virtblk_add_req_scsi()
110 sg_init_one(&status, &vbr->status, sizeof(vbr->status)); in virtblk_add_req_scsi()
113 return virtqueue_add_sgs(vq, sgs, num_out, num_in, vbr, GFP_ATOMIC); in virtblk_add_req_scsi()
118 struct virtblk_req *vbr = blk_mq_rq_to_pdu(req); in virtblk_scsi_request_done() local
120 struct scsi_request *sreq = &vbr->sreq; in virtblk_scsi_request_done()
122 sreq->resid_len = virtio32_to_cpu(vblk->vdev, vbr->in_hdr.residual); in virtblk_scsi_request_done()
123 sreq->sense_len = virtio32_to_cpu(vblk->vdev, vbr->in_hdr.sense_len); in virtblk_scsi_request_done()
124 sreq->result = virtio32_to_cpu(vblk->vdev, vbr->in_hdr.errors); in virtblk_scsi_request_done()
144 struct virtblk_req *vbr, struct scatterlist *data_sg, in virtblk_add_req_scsi() argument
155 static int virtblk_add_req(struct virtqueue *vq, struct virtblk_req *vbr, in virtblk_add_req() argument
161 sg_init_one(&hdr, &vbr->out_hdr, sizeof(vbr->out_hdr)); in virtblk_add_req()
165 if (vbr->out_hdr.type & cpu_to_virtio32(vq->vdev, VIRTIO_BLK_T_OUT)) in virtblk_add_req()
171 sg_init_one(&status, &vbr->status, sizeof(vbr->status)); in virtblk_add_req()
174 return virtqueue_add_sgs(vq, sgs, num_out, num_in, vbr, GFP_ATOMIC); in virtblk_add_req()
212 struct virtblk_req *vbr = blk_mq_rq_to_pdu(req); in virtblk_request_done() local
226 blk_mq_end_request(req, virtblk_result(vbr)); in virtblk_request_done()
234 struct virtblk_req *vbr; in virtblk_done() local
241 while ((vbr = virtqueue_get_buf(vblk->vqs[qid].vq, &len)) != NULL) { in virtblk_done()
242 struct request *req = blk_mq_rq_from_pdu(vbr); in virtblk_done()
276 struct virtblk_req *vbr = blk_mq_rq_to_pdu(req); in virtio_queue_rq() local
314 vbr->out_hdr.type = cpu_to_virtio32(vblk->vdev, type); in virtio_queue_rq()
315 vbr->out_hdr.sector = type ? in virtio_queue_rq()
317 vbr->out_hdr.ioprio = cpu_to_virtio32(vblk->vdev, req_get_ioprio(req)); in virtio_queue_rq()
327 num = blk_rq_map_sg(hctx->queue, req, vbr->sg); in virtio_queue_rq()
330 vbr->out_hdr.type |= cpu_to_virtio32(vblk->vdev, VIRTIO_BLK_T_OUT); in virtio_queue_rq()
332 vbr->out_hdr.type |= cpu_to_virtio32(vblk->vdev, VIRTIO_BLK_T_IN); in virtio_queue_rq()
337 err = virtblk_add_req_scsi(vblk->vqs[qid].vq, vbr, vbr->sg, num); in virtio_queue_rq()
339 err = virtblk_add_req(vblk->vqs[qid].vq, vbr, vbr->sg, num); in virtio_queue_rq()
684 struct virtblk_req *vbr = blk_mq_rq_to_pdu(rq); in virtblk_init_request() local
687 vbr->sreq.sense = vbr->sense; in virtblk_init_request()
689 sg_init_table(vbr->sg, vblk->sg_elems); in virtblk_init_request()
704 struct virtblk_req *vbr = blk_mq_rq_to_pdu(req); in virtblk_initialize_rq() local
706 scsi_req_init(&vbr->sreq); in virtblk_initialize_rq()