Revision 94d3f98a hw/usb-msd.c

b/hw/usb-msd.c
264 264
    }
265 265
}
266 266

  
267
static void usb_msd_request_cancelled(SCSIRequest *req)
268
{
269
    MSDState *s = DO_UPCAST(MSDState, dev.qdev, req->bus->qbus.parent);
270

  
271
    if (req == s->req) {
272
        scsi_req_unref(s->req);
273
        s->req = NULL;
274
        s->packet = NULL;
275
        s->scsi_len = 0;
276
    }
277
}
278

  
267 279
static void usb_msd_handle_reset(USBDevice *dev)
268 280
{
269 281
    MSDState *s = (MSDState *)dev;
......
318 330
static void usb_msd_cancel_io(USBPacket *p, void *opaque)
319 331
{
320 332
    MSDState *s = opaque;
321
    s->scsi_dev->info->cancel_io(s->req);
322
    s->packet = NULL;
323
    s->scsi_len = 0;
333
    scsi_req_cancel(s->req);
324 334
}
325 335

  
326 336
static int usb_msd_handle_data(USBDevice *dev, USBPacket *p)
......
491 501
}
492 502

  
493 503
static const struct SCSIBusOps usb_msd_scsi_ops = {
494
    .complete = usb_msd_command_complete
504
    .complete = usb_msd_command_complete,
505
    .cancel = usb_msd_request_cancelled
495 506
};
496 507

  
497 508
static int usb_msd_initfn(USBDevice *dev)

Also available in: Unified diff