diff options
author | Kevin Wolf <kwolf@redhat.com> | 2018-10-12 11:27:41 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2018-11-05 15:09:55 +0100 |
commit | eaa2410f1ea864609090c0a5fda9e0ce9499da79 (patch) | |
tree | 68021063e0cf17887ba5cad0e7687dd485bd8ed5 /block/dmg.c | |
parent | a51b9c4862c29f427931f45ee1d39ac1663ba859 (diff) | |
download | qemu-eaa2410f1ea864609090c0a5fda9e0ce9499da79.zip qemu-eaa2410f1ea864609090c0a5fda9e0ce9499da79.tar.gz qemu-eaa2410f1ea864609090c0a5fda9e0ce9499da79.tar.bz2 |
block: Require auto-read-only for existing fallbacks
Some block drivers have traditionally changed their node to read-only
mode without asking the user. This behaviour has been marked deprecated
since 2.11, expecting users to provide an explicit read-only=on option.
Now that we have auto-read-only=on, enable these drivers to make use of
the option.
This is the only use of bdrv_set_read_only(), so we can make it a bit
more specific and turn it into a bdrv_apply_auto_read_only() that is
more convenient for drivers to use.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'block/dmg.c')
-rw-r--r-- | block/dmg.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/block/dmg.c b/block/dmg.c index c9b3c51..1d9283b 100644 --- a/block/dmg.c +++ b/block/dmg.c @@ -413,23 +413,17 @@ static int dmg_open(BlockDriverState *bs, QDict *options, int flags, int64_t offset; int ret; + ret = bdrv_apply_auto_read_only(bs, NULL, errp); + if (ret < 0) { + return ret; + } + bs->file = bdrv_open_child(NULL, options, "file", bs, &child_file, false, errp); if (!bs->file) { return -EINVAL; } - if (!bdrv_is_read_only(bs)) { - error_report("Opening dmg images without an explicit read-only=on " - "option is deprecated. Future versions will refuse to " - "open the image instead of automatically marking the " - "image read-only."); - ret = bdrv_set_read_only(bs, true, errp); - if (ret < 0) { - return ret; - } - } - block_module_load_one("dmg-bz2"); s->n_chunks = 0; |