On Fri, 08/22 10:14, Paolo Bonzini wrote: > Il 22/08/2014 03:23, Fam Zheng ha scritto: > > What about we save cb and opaque locally, and set acb->cb to a nop. When > > cancel > > is done we can call the original cb? > > That might work but needs some auditing. Right now the AIOCB is still > valid when the callback is called, and this would be changed. > > Also, having different semantics for cancellation vs. completion would > be painful. >
Exactly. I'd rather not change the contract then. Alternatively, we may add a refcnt field to BlockDriverAioCB and grab one before calling .cancel, so the qemu_aio_release will not free it. Fam