From 398e6ad014df261d20d3fd6cff2cfbf940bac714 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Tue, 7 Nov 2017 18:21:41 +0100 Subject: block: Deprecate bdrv_set_read_only() and users bdrv_set_read_only() is used by some block drivers to override the read-only option given by the user. This is not how read-only images generally work in QEMU: Instead of second guessing what the user really meant (which currently includes making an image read-only even if the user didn't only use the default, but explicitly said read-only=off), we should error out if we can't provide what the user requested. This adds deprecation warnings to all callers of bdrv_set_read_only() so that the behaviour can be corrected after the usual deprecation period. Signed-off-by: Kevin Wolf --- block.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'block.c') diff --git a/block.c b/block.c index f6415547fe..0ed0c27140 100644 --- a/block.c +++ b/block.c @@ -261,6 +261,11 @@ int bdrv_can_set_read_only(BlockDriverState *bs, bool read_only, return 0; } +/* TODO Remove (deprecated since 2.11) + * Block drivers are not supposed to automatically change bs->read_only. + * Instead, they should just check whether they can provide what the user + * explicitly requested and error out if read-write is requested, but they can + * only provide read-only access. */ int bdrv_set_read_only(BlockDriverState *bs, bool read_only, Error **errp) { int ret = 0; -- cgit v1.2.1