提交 e94d3dba 编写于 作者: A Alberto Garcia 提交者: Kevin Wolf

block: Use bdrv_reopen_set_read_only() in bdrv_backing_update_filename()

This patch replaces the bdrv_reopen() calls that set and remove the
BDRV_O_RDWR flag with the new bdrv_reopen_set_read_only() function.
Signed-off-by: NAlberto Garcia <berto@igalia.com>
Reviewed-by: NMax Reitz <mreitz@redhat.com>
Signed-off-by: NKevin Wolf <kwolf@redhat.com>
上级 6e1000a8
...@@ -1079,11 +1079,11 @@ static int bdrv_backing_update_filename(BdrvChild *c, BlockDriverState *base, ...@@ -1079,11 +1079,11 @@ static int bdrv_backing_update_filename(BdrvChild *c, BlockDriverState *base,
const char *filename, Error **errp) const char *filename, Error **errp)
{ {
BlockDriverState *parent = c->opaque; BlockDriverState *parent = c->opaque;
int orig_flags = bdrv_get_flags(parent); bool read_only = bdrv_is_read_only(parent);
int ret; int ret;
if (!(orig_flags & BDRV_O_RDWR)) { if (read_only) {
ret = bdrv_reopen(parent, orig_flags | BDRV_O_RDWR, errp); ret = bdrv_reopen_set_read_only(parent, false, errp);
if (ret < 0) { if (ret < 0) {
return ret; return ret;
} }
...@@ -1095,8 +1095,8 @@ static int bdrv_backing_update_filename(BdrvChild *c, BlockDriverState *base, ...@@ -1095,8 +1095,8 @@ static int bdrv_backing_update_filename(BdrvChild *c, BlockDriverState *base,
error_setg_errno(errp, -ret, "Could not update backing file link"); error_setg_errno(errp, -ret, "Could not update backing file link");
} }
if (!(orig_flags & BDRV_O_RDWR)) { if (read_only) {
bdrv_reopen(parent, orig_flags, NULL); bdrv_reopen_set_read_only(parent, true, NULL);
} }
return ret; return ret;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册