static void virtio_scsi_complete_req(VirtIOSCSIReq *req)

{

    VirtIOSCSI *s = req->dev;

    VirtQueue *vq = req->vq;

    VirtIODevice *vdev = VIRTIO_DEVICE(s);

    virtqueue_push(vq, &req->elem, req->qsgl.size + req->elem.in_sg[0].iov_len);

    if (req->sreq) {

        req->sreq->hba_private = NULL;

        scsi_req_unref(req->sreq);

    }

    virtio_scsi_free_req(req);

    virtio_notify(vdev, vq);

}

static void virtio_scsi_complete_req(VirtIOSCSIReq *req)

{

    VirtIOSCSI *s = req->dev;

    VirtQueue *vq = req->vq;

    VirtIODevice *vdev = VIRTIO_DEVICE(s);

    virtqueue_push(vq, &req->elem, req->qsgl.size + req->elem.in_sg[0].iov_len);

    if (req->sreq) {

        req->sreq->hba_private = NULL;

        scsi_req_unref(req->sreq);

    }

    virtio_scsi_free_req(req);

    virtio_notify(vdev, vq);

}

static void FUNC_0(VirtIOSCSIReq *VAR_0)

{

    VirtIOSCSI *s = VAR_0->dev;

    VirtQueue *vq = VAR_0->vq;

    VirtIODevice *vdev = VIRTIO_DEVICE(s);

    virtqueue_push(vq, &VAR_0->elem, VAR_0->qsgl.size + VAR_0->elem.in_sg[0].iov_len);

    if (VAR_0->sreq) {

        VAR_0->sreq->hba_private = NULL;

        scsi_req_unref(VAR_0->sreq);

    }

    virtio_scsi_free_req(VAR_0);

    virtio_notify(vdev, vq);

}

static void FUNC_0(VirtIOSCSIReq *VAR_0)
{ VirtIOSCSI *s = VAR_0->dev; VirtQueue *vq = VAR_0->vq; VirtIODevice *vdev = VIRTIO_DEVICE(s); virtqueue_push(vq, &VAR_0->elem, VAR_0->qsgl.size + VAR_0->elem.in_sg[0].iov_len); if (VAR_0->sreq) { VAR_0->sreq->hba_private = NULL; scsi_req_unref(VAR_0->sreq); } virtio_scsi_free_req(VAR_0); virtio_notify(vdev, vq); }