From 3443839ba7e5f3ff39cd3e12158ce21c1314d174 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Fri, 13 Jan 2012 02:32:28 -0800 Subject: [PATCH] Fixed disk I/O which didn't work when Asynch I/O was dynamically disabled by scp command 'set noasync' --- sim_disk.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sim_disk.c b/sim_disk.c index 2325aa19..c431601b 100644 --- a/sim_disk.c +++ b/sim_disk.c @@ -126,7 +126,7 @@ struct disk_context *ctx = (struct disk_context *)uptr->disk_ctx; \ if ((!callback) || !ctx->asynch_io) #define AIO_CALL(op, _lba, _buf, _rsects, _sects, _callback) \ - if (1) { \ + if (ctx->asynch_io) { \ struct disk_context *ctx = \ (struct disk_context *)uptr->disk_ctx; \ \ @@ -146,7 +146,10 @@ if ((!callback) || !ctx->asynch_io) ctx->callback = _callback; \ pthread_cond_signal (&ctx->io_cond); \ pthread_mutex_unlock (&ctx->io_lock); \ - } + } \ + else \ + if (_callback) \ + (_callback) (uptr, r); #define DOP_DONE 0 /* close */