@@ -769,7 +769,13 @@ static int bdrv_open_common(BlockDriverState *bs, BlockDriverState *file,
bs->read_only = !(open_flags & BDRV_O_RDWR);
if (use_bdrv_whitelist && !bdrv_is_whitelisted(drv, bs->read_only)) {
- error_setg(errp, "Driver '%s' is not whitelisted", drv->format_name);
+ if (!bs->read_only && bdrv_is_whitelisted(drv, true)) {
+ error_setg(errp, "format '%s' is only supported read-only",
+ drv->format_name);
+ } else {
+ error_setg(errp, "Driver '%s' is not whitelisted",
+ drv->format_name);
+ }
return -ENOTSUP;
}
@@ -471,7 +471,7 @@ static DriveInfo *blockdev_init(QemuOpts *all_opts,
drv = bdrv_find_whitelisted_format(buf, ro);
if (!drv) {
if (!ro && bdrv_find_whitelisted_format(buf, !ro)) {
- error_report("'%s' can be only used as read-only device.", buf);
+ error_report("format '%s' is only supported read-only", buf);
} else {
error_report("'%s' invalid format", buf);
}
Supplement of 7780d47, with message reworded and format probe case included: print an easy to understand message, when user tries to open a read-only format as read-write. Signed-off-by: Fam Zheng <famz@redhat.com> --- block.c | 8 +++++++- blockdev.c | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-)