[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 for-2.10 6/8] block: use bdrv_can_set_read_only()
From: |
Jeff Cody |
Subject: |
[Qemu-devel] [PATCH v2 for-2.10 6/8] block: use bdrv_can_set_read_only() during reopen |
Date: |
Fri, 7 Apr 2017 16:55:30 -0400 |
Signed-off-by: Jeff Cody <address@hidden>
---
block.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/block.c b/block.c
index 1514ae9..5d560f5 100644
--- a/block.c
+++ b/block.c
@@ -2785,6 +2785,7 @@ int bdrv_reopen_prepare(BDRVReopenState *reopen_state,
BlockReopenQueue *queue,
BlockDriver *drv;
QemuOpts *opts;
const char *value;
+ bool read_only;
assert(reopen_state != NULL);
assert(reopen_state->bs->drv != NULL);
@@ -2813,12 +2814,13 @@ int bdrv_reopen_prepare(BDRVReopenState *reopen_state,
BlockReopenQueue *queue,
qdict_put(reopen_state->options, "driver", qstring_from_str(value));
}
- /* if we are to stay read-only, do not allow permission change
- * to r/w */
- if (!(reopen_state->bs->open_flags & BDRV_O_ALLOW_RDWR) &&
- reopen_state->flags & BDRV_O_RDWR) {
- error_setg(errp, "Node '%s' is read only",
- bdrv_get_device_or_node_name(reopen_state->bs));
+ /* If we are to stay read-only, do not allow permission change
+ * to r/w. Attempting to set to r/w may fail if either BDRV_O_ALLOW_RDWR is
+ * not set, or if the BDS still has copy_on_read enabled */
+ read_only = !(reopen_state->flags & BDRV_O_RDWR);
+ ret = bdrv_can_set_read_only(reopen_state->bs, read_only, &local_err);
+ if (local_err) {
+ error_propagate(errp, local_err);
goto error;
}
--
2.9.3
- [Qemu-devel] [PATCH v2 for-2.10 0/8] RBD reopen, read_only cleanup, Jeff Cody, 2017/04/07
- [Qemu-devel] [PATCH v2 for-2.10 1/8] block: add bdrv_set_read_only() helper function, Jeff Cody, 2017/04/07
- [Qemu-devel] [PATCH v2 for-2.10 3/8] block: honor BDRV_O_ALLOW_RDWR when clearing bs->read_only, Jeff Cody, 2017/04/07
- [Qemu-devel] [PATCH v2 for-2.10 2/8] block: do not set BDS read_only if copy_on_read enabled, Jeff Cody, 2017/04/07
- [Qemu-devel] [PATCH v2 for-2.10 5/8] block: introduce bdrv_can_set_read_only(), Jeff Cody, 2017/04/07
- [Qemu-devel] [PATCH v2 for-2.10 6/8] block: use bdrv_can_set_read_only() during reopen,
Jeff Cody <=
- [Qemu-devel] [PATCH v2 for-2.10 4/8] block: code movement, Jeff Cody, 2017/04/07
- [Qemu-devel] [PATCH v2 for-2.10 7/8] block/rbd - update variable names to more apt names, Jeff Cody, 2017/04/07
- [Qemu-devel] [PATCH v2 for-2.10 8/8] block/rbd: Add support for reopen(), Jeff Cody, 2017/04/07
- Re: [Qemu-devel] [PATCH v2 for-2.10 0/8] RBD reopen, read_only cleanup, Stefan Hajnoczi, 2017/04/10
- Re: [Qemu-devel] [PATCH v2 for-2.10 0/8] RBD reopen, read_only cleanup, John Snow, 2017/04/10
- Re: [Qemu-devel] [PATCH v2 for-2.10 0/8] RBD reopen, read_only cleanup, Jeff Cody, 2017/04/20