the malloc() implementation should do a decent job at this, simplifies
block device locking.
Index: kvm-userspace.io/qemu/block.c
===================================================================
--- kvm-userspace.io.orig/qemu/block.c
+++ kvm-userspace.io/qemu/block.c
@@ -1447,14 +1447,10 @@ void *qemu_aio_get(BlockDriverState *bs,
BlockDriverAIOCB *acb;
drv = bs->drv;
- if (drv->free_aiocb) {
- acb = drv->free_aiocb;
- drv->free_aiocb = acb->next;
- } else {
- acb = qemu_mallocz(drv->aiocb_size);
- if (!acb)
- return NULL;
- }
+ acb = qemu_mallocz(drv->aiocb_size);
+ if (!acb)
+ return NULL;
+
acb->bs = bs;
acb->cb = cb;
acb->opaque = opaque;
@@ -1464,9 +1460,7 @@ void *qemu_aio_get(BlockDriverState *bs,
void qemu_aio_release(void *p)
{
BlockDriverAIOCB *acb = p;
- BlockDriver *drv = acb->bs->drv;
- acb->next = drv->free_aiocb;
- drv->free_aiocb = acb;
+ qemu_free(p);
}
/**************************************************************/
Index: kvm-userspace.io/qemu/block_int.h
===================================================================
--- kvm-userspace.io.orig/qemu/block_int.h
+++ kvm-userspace.io/qemu/block_int.h
@@ -85,7 +85,6 @@ struct BlockDriver {
/* to control generic scsi devices */
int (*bdrv_ioctl)(BlockDriverState *bs, unsigned long int req, void *buf);
- BlockDriverAIOCB *free_aiocb;
struct BlockDriver *next;
};
--
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
kvm-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel