On Thu, 08/06 12:01, Paolo Bonzini wrote: > /* Actually issue a read to the block device. */ > -static void scsi_do_read(void *opaque, int ret) > +static void scsi_do_read(SCSIDiskReq *r, int ret) > { > - SCSIDiskReq *r = opaque; > SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, r->req.dev); > uint32_t n; > > - if (r->req.aiocb != NULL) { > - r->req.aiocb = NULL; > - block_acct_done(blk_get_stats(s->qdev.conf.blk), &r->acct); > - } > + assert (r->req.aiocb == NULL); > + > if (r->req.io_canceled) { > scsi_req_cancel_complete(&r->req); > goto done; > @@ -349,6 +347,18 @@ done: > scsi_req_unref(&r->req); > } > > +static void scsi_do_read_cb(void *opaque, int ret) > +{ > + SCSIDiskReq *r = (SCSIDiskReq *)opaque; > + SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, r->req.dev); > + > + assert (r->req.aiocb != NULL);
Majority of asserts across the code base don't get whitespace in the middle, but 4 out of 8 in this patch do :)