This change requires that callers manage the accounting cookie. I think this belongs in block.c to make the life of callers easier.
Today block.c doesn't track requests and pretty much lets the BlockDriver control the BlockDriverAIOCB. But the request metadata (timestamp, operation type, number of bytes) could all be part of the BlockDriverAIOCB. block.c also needs to interpose a cb function so that it can account when the request completes. Doing this all once seems like the right way to go. Stefan