OSDN Git Service

block: Use bdrv_reopen_set_read_only() in the mirror driver
authorAlberto Garcia <berto@igalia.com>
Mon, 12 Nov 2018 14:00:40 +0000 (16:00 +0200)
committerKevin Wolf <kwolf@redhat.com>
Fri, 14 Dec 2018 10:55:02 +0000 (11:55 +0100)
commit1ba793889583cf9b548bf61bd5c8f224ad6c1415
treee17c25fdde7043bbf11c7a738f6c08d84e1f7f0f
parent1b57774f79e6fb5e848149e0bf227e0534e9ade5
block: Use bdrv_reopen_set_read_only() in the mirror driver

The 'block-commit' QMP command is implemented internally using two
different drivers. If the source image is the active layer then the
mirror driver is used (commit_active_start()), otherwise the commit
driver is used (commit_start()).

In both cases the destination image must be put temporarily in
read-write mode. This is done correctly in the latter case, but what
commit_active_start() does is copy all flags instead.

This patch replaces the bdrv_reopen() calls in that function with
bdrv_reopen_set_read_only() so that only the read-only status is
changed.

A similar change is made in mirror_exit(), which is also used by the
'drive-mirror' and 'blockdev-mirror' commands.

Signed-off-by: Alberto Garcia <berto@igalia.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/mirror.c