Commit 90765429aab64478e4dd9de3bbb21e5eafb5ead5
1 parent
ce1a14dc
fixed aio emulation
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2099 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
7 additions
and
8 deletions
block.c
... | ... | @@ -35,6 +35,12 @@ |
35 | 35 | #define SECTOR_BITS 9 |
36 | 36 | #define SECTOR_SIZE (1 << SECTOR_BITS) |
37 | 37 | |
38 | +typedef struct BlockDriverAIOCBSync { | |
39 | + BlockDriverAIOCB common; | |
40 | + QEMUBH *bh; | |
41 | + int ret; | |
42 | +} BlockDriverAIOCBSync; | |
43 | + | |
38 | 44 | static BlockDriverAIOCB *bdrv_aio_read_em(BlockDriverState *bs, |
39 | 45 | int64_t sector_num, uint8_t *buf, int nb_sectors, |
40 | 46 | BlockDriverCompletionFunc *cb, void *opaque); |
... | ... | @@ -111,6 +117,7 @@ void bdrv_register(BlockDriver *bdrv) |
111 | 117 | bdrv->bdrv_aio_read = bdrv_aio_read_em; |
112 | 118 | bdrv->bdrv_aio_write = bdrv_aio_write_em; |
113 | 119 | bdrv->bdrv_aio_cancel = bdrv_aio_cancel_em; |
120 | + bdrv->aiocb_size = sizeof(BlockDriverAIOCBSync); | |
114 | 121 | } else if (!bdrv->bdrv_read && !bdrv->bdrv_pread) { |
115 | 122 | /* add synchronous IO emulation layer */ |
116 | 123 | bdrv->bdrv_read = bdrv_read_em; |
... | ... | @@ -1061,14 +1068,6 @@ static void bdrv_aio_cancel_em(BlockDriverAIOCB *acb) |
1061 | 1068 | { |
1062 | 1069 | } |
1063 | 1070 | #else |
1064 | -typedef struct BlockDriverAIOCBSync { | |
1065 | - BlockDriverAIOCB common; | |
1066 | - QEMUBH *bh; | |
1067 | - int ret; | |
1068 | -} BlockDriverAIOCBSync; | |
1069 | - | |
1070 | -static BlockDriverAIOCBSync *free_acb = NULL; | |
1071 | - | |
1072 | 1071 | static void bdrv_aio_bh_cb(void *opaque) |
1073 | 1072 | { |
1074 | 1073 | BlockDriverAIOCBSync *acb = opaque; | ... | ... |