nfs_set_events only needs to be called once before entering the while loop; afterwards, nfs_process_read and nfs_process_write take care of it.
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- block/nfs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/block/nfs.c b/block/nfs.c index c3db2ec..c8df8d8 100644 --- a/block/nfs.c +++ b/block/nfs.c @@ -149,8 +149,8 @@ static int coroutine_fn nfs_co_readv(BlockDriverState *bs, return -ENOMEM; } + nfs_set_events(client); while (!task.complete) { - nfs_set_events(client); qemu_coroutine_yield(); } @@ -191,8 +191,8 @@ static int coroutine_fn nfs_co_writev(BlockDriverState *bs, return -ENOMEM; } + nfs_set_events(client); while (!task.complete) { - nfs_set_events(client); qemu_coroutine_yield(); } @@ -217,8 +217,8 @@ static int coroutine_fn nfs_co_flush(BlockDriverState *bs) return -ENOMEM; } + nfs_set_events(client); while (!task.complete) { - nfs_set_events(client); qemu_coroutine_yield(); } @@ -513,8 +513,8 @@ static int64_t nfs_get_allocated_file_size(BlockDriverState *bs) return -ENOMEM; } + nfs_set_events(client); while (!task.complete) { - nfs_set_events(client); aio_poll(client->aio_context, true); } -- 2.7.4