ensure that there are no pending I/Os before calling the sync readcapacity commands. the block_resize monitor command will also flush all I/O, but double check in case iscsi_truncate() is called from elsewhere in the future.
Signed-off-by: Peter Lieven <p...@kamp.de> --- block/iscsi.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/block/iscsi.c b/block/iscsi.c index 3d52921..de20d53 100644 --- a/block/iscsi.c +++ b/block/iscsi.c @@ -1167,6 +1167,10 @@ static int iscsi_truncate(BlockDriverState *bs, int64_t offset) return -ENOTSUP; } + /* ensure all async requests are completed before executing + * a sync readcapacity */ + bdrv_drain_all(); + if ((ret = iscsi_readcapacity_sync(iscsilun)) != 0) { return ret; } -- 1.7.9.5