Revision c1b35247

b/hw/scsi-disk.c
169 169
    qemu_iovec_init_external(&r->qiov, &r->iov, 1);
170 170
}
171 171

  
172
static void scsi_flush_complete(void * opaque, int ret)
172
static void scsi_aio_complete(void *opaque, int ret)
173 173
{
174 174
    SCSIDiskReq *r = (SCSIDiskReq *)opaque;
175 175
    SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, r->req.dev);
......
222 222

  
223 223
    if (scsi_is_cmd_fua(&r->req.cmd)) {
224 224
        bdrv_acct_start(s->qdev.conf.bs, &r->acct, 0, BDRV_ACCT_FLUSH);
225
        r->req.aiocb = bdrv_aio_flush(s->qdev.conf.bs, scsi_flush_complete, r);
225
        r->req.aiocb = bdrv_aio_flush(s->qdev.conf.bs, scsi_aio_complete, r);
226 226
        return;
227 227
    }
228 228

  
......
1543 1543
        /* The request is used as the AIO opaque value, so add a ref.  */
1544 1544
        scsi_req_ref(&r->req);
1545 1545
        bdrv_acct_start(s->qdev.conf.bs, &r->acct, 0, BDRV_ACCT_FLUSH);
1546
        r->req.aiocb = bdrv_aio_flush(s->qdev.conf.bs, scsi_flush_complete, r);
1546
        r->req.aiocb = bdrv_aio_flush(s->qdev.conf.bs, scsi_aio_complete, r);
1547 1547
        return 0;
1548 1548
    case READ_6:
1549 1549
    case READ_10:
......
1620 1620
            goto fail;
1621 1621
        }
1622 1622

  
1623
        rc = bdrv_discard(s->qdev.conf.bs,
1624
                          r->req.cmd.lba * (s->qdev.blocksize / 512),
1625
                          len * (s->qdev.blocksize / 512));
1626
        if (rc < 0) {
1627
            /* XXX: better error code ?*/
1628
            goto fail;
1629
        }
1630

  
1631
        break;
1623
        /* The request is used as the AIO opaque value, so add a ref.  */
1624
        scsi_req_ref(&r->req);
1625
        r->req.aiocb = bdrv_aio_discard(s->qdev.conf.bs,
1626
                                        r->req.cmd.lba * (s->qdev.blocksize / 512),
1627
                                        len * (s->qdev.blocksize / 512),
1628
                                        scsi_aio_complete, r);
1629
        return 0;
1632 1630
    default:
1633 1631
        DPRINTF("Unknown SCSI command (%2.2x)\n", buf[0]);
1634 1632
        scsi_check_condition(r, SENSE_CODE(INVALID_OPCODE));

Also available in: Unified diff