Lines Matching refs:vbr
62 static inline int virtblk_result(struct virtblk_req *vbr) in virtblk_result() argument
64 switch (vbr->status) { in virtblk_result()
75 struct virtblk_req *vbr, in __virtblk_add_req() argument
81 __virtio32 type = vbr->out_hdr.type & ~cpu_to_virtio32(vq->vdev, VIRTIO_BLK_T_OUT); in __virtblk_add_req()
83 sg_init_one(&hdr, &vbr->out_hdr, sizeof(vbr->out_hdr)); in __virtblk_add_req()
93 sg_init_one(&cmd, vbr->req->cmd, vbr->req->cmd_len); in __virtblk_add_req()
98 if (vbr->out_hdr.type & cpu_to_virtio32(vq->vdev, VIRTIO_BLK_T_OUT)) in __virtblk_add_req()
105 sg_init_one(&sense, vbr->req->sense, SCSI_SENSE_BUFFERSIZE); in __virtblk_add_req()
107 sg_init_one(&inhdr, &vbr->in_hdr, sizeof(vbr->in_hdr)); in __virtblk_add_req()
111 sg_init_one(&status, &vbr->status, sizeof(vbr->status)); in __virtblk_add_req()
114 return virtqueue_add_sgs(vq, sgs, num_out, num_in, vbr, GFP_ATOMIC); in __virtblk_add_req()
119 struct virtblk_req *vbr = blk_mq_rq_to_pdu(req); in virtblk_request_done() local
121 int error = virtblk_result(vbr); in virtblk_request_done()
124 req->resid_len = virtio32_to_cpu(vblk->vdev, vbr->in_hdr.residual); in virtblk_request_done()
125 req->sense_len = virtio32_to_cpu(vblk->vdev, vbr->in_hdr.sense_len); in virtblk_request_done()
126 req->errors = virtio32_to_cpu(vblk->vdev, vbr->in_hdr.errors); in virtblk_request_done()
139 struct virtblk_req *vbr; in virtblk_done() local
146 while ((vbr = virtqueue_get_buf(vblk->vqs[qid].vq, &len)) != NULL) { in virtblk_done()
147 blk_mq_complete_request(vbr->req); in virtblk_done()
165 struct virtblk_req *vbr = blk_mq_rq_to_pdu(req); in virtio_queue_rq() local
174 vbr->req = req; in virtio_queue_rq()
176 vbr->out_hdr.type = cpu_to_virtio32(vblk->vdev, VIRTIO_BLK_T_FLUSH); in virtio_queue_rq()
177 vbr->out_hdr.sector = 0; in virtio_queue_rq()
178 vbr->out_hdr.ioprio = cpu_to_virtio32(vblk->vdev, req_get_ioprio(vbr->req)); in virtio_queue_rq()
182 vbr->out_hdr.type = 0; in virtio_queue_rq()
183 vbr->out_hdr.sector = cpu_to_virtio64(vblk->vdev, blk_rq_pos(vbr->req)); in virtio_queue_rq()
184 vbr->out_hdr.ioprio = cpu_to_virtio32(vblk->vdev, req_get_ioprio(vbr->req)); in virtio_queue_rq()
187 vbr->out_hdr.type = cpu_to_virtio32(vblk->vdev, VIRTIO_BLK_T_SCSI_CMD); in virtio_queue_rq()
188 vbr->out_hdr.sector = 0; in virtio_queue_rq()
189 vbr->out_hdr.ioprio = cpu_to_virtio32(vblk->vdev, req_get_ioprio(vbr->req)); in virtio_queue_rq()
192 vbr->out_hdr.type = cpu_to_virtio32(vblk->vdev, VIRTIO_BLK_T_GET_ID); in virtio_queue_rq()
193 vbr->out_hdr.sector = 0; in virtio_queue_rq()
194 vbr->out_hdr.ioprio = cpu_to_virtio32(vblk->vdev, req_get_ioprio(vbr->req)); in virtio_queue_rq()
204 num = blk_rq_map_sg(hctx->queue, vbr->req, vbr->sg); in virtio_queue_rq()
206 if (rq_data_dir(vbr->req) == WRITE) in virtio_queue_rq()
207 vbr->out_hdr.type |= cpu_to_virtio32(vblk->vdev, VIRTIO_BLK_T_OUT); in virtio_queue_rq()
209 vbr->out_hdr.type |= cpu_to_virtio32(vblk->vdev, VIRTIO_BLK_T_IN); in virtio_queue_rq()
213 err = __virtblk_add_req(vblk->vqs[qid].vq, vbr, vbr->sg, num); in virtio_queue_rq()
550 struct virtblk_req *vbr = blk_mq_rq_to_pdu(rq); in virtblk_init_request() local
552 sg_init_table(vbr->sg, vblk->sg_elems); in virtblk_init_request()