diff options
Diffstat (limited to 'block.c')
| -rw-r--r-- | block.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/block.c b/block.c index fae50c95b5..53f5b44fbb 100644 --- a/block.c +++ b/block.c @@ -1388,12 +1388,19 @@ done: ret = -EINVAL; goto close_and_fail; } - QDECREF(options); if (!bdrv_key_required(bs)) { bdrv_dev_change_media_cb(bs, true); + } else if (!runstate_check(RUN_STATE_PRELAUNCH) + && !runstate_check(RUN_STATE_INMIGRATE) + && !runstate_check(RUN_STATE_PAUSED)) { /* HACK */ + error_setg(errp, + "Guest must be stopped for opening of encrypted image"); + ret = -EBUSY; + goto close_and_fail; } + QDECREF(options); *pbs = bs; return 0; |