diff options
| author | Peter Lieven | 2013-03-11 11:04:24 +0100 |
|---|---|---|
| committer | Kevin Wolf | 2013-03-22 17:51:31 +0100 |
| commit | 92b7a08d64e5e3129fa885f9d180e5bddcb76b42 (patch) | |
| tree | a5d82d0be1107be81d8a7c3aa4f7d115356d18dc | |
| parent | Revert "block: complete all IOs before .bdrv_truncate" (diff) | |
| download | qemu-92b7a08d64e5e3129fa885f9d180e5bddcb76b42.tar.gz qemu-92b7a08d64e5e3129fa885f9d180e5bddcb76b42.tar.xz qemu-92b7a08d64e5e3129fa885f9d180e5bddcb76b42.zip | |
block: complete all IOs before resizing a device
this patch ensures that all pending IOs are completed
before a device is resized. this is especially important
if a device is shrinked as it the bdrv_check_request()
result is invalidated.
Signed-off-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
| -rw-r--r-- | blockdev.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/blockdev.c b/blockdev.c index 09f76b782f..6f2b7592ce 100644 --- a/blockdev.c +++ b/blockdev.c @@ -1127,6 +1127,9 @@ void qmp_block_resize(const char *device, int64_t size, Error **errp) return; } + /* complete all in-flight operations before resizing the device */ + bdrv_drain_all(); + switch (bdrv_truncate(bs, size)) { case 0: break; |
