On 20.02.2017 14:05, Kevin Wolf wrote: > Am 20.02.2017 um 13:28 hat Max Reitz geschrieben: >> On 13.02.2017 18:22, Kevin Wolf wrote: >>> By default, don't allow another writer for block devices that are >>> attached to a guest device. For the cases where this setup is intended >>> (e.g. using a cluster filesystem on the disk), the new option can be >>> used to allow it. >>> >>> This change affects only devices using DEFINE_BLOCK_PROPERTIES(). >>> Devices directly using DEFINE_PROP_DRIVE() still accept writers >>> unconditionally. >>> >>> Signed-off-by: Kevin Wolf <kw...@redhat.com> >>> --- >>> hw/block/block.c | 14 ++++++------ >>> include/hw/block/block.h | 4 +++- >>> tests/qemu-iotests/172.out | 53 >>> ++++++++++++++++++++++++++++++++++++++++++++++ >>> 3 files changed, 64 insertions(+), 7 deletions(-) >>> >>> diff --git a/hw/block/block.c b/hw/block/block.c >>> index c3d3901..3c218eb 100644 >>> --- a/hw/block/block.c >>> +++ b/hw/block/block.c >>> @@ -56,7 +56,7 @@ void blkconf_apply_backend_options(BlockConf *conf, bool >>> readonly, >>> { >>> BlockBackend *blk = conf->blk; >>> BlockdevOnError rerror, werror; >>> - uint64_t perm; >>> + uint64_t perm, shared_perm; >>> bool wce; >>> int ret; >>> >>> @@ -65,11 +65,13 @@ void blkconf_apply_backend_options(BlockConf *conf, >>> bool readonly, >>> perm |= BLK_PERM_WRITE; >>> } >>> >>> - /* TODO Remove BLK_PERM_WRITE unless explicitly configured so */ >>> - ret = blk_set_perm(blk, perm, >>> - BLK_PERM_CONSISTENT_READ | BLK_PERM_WRITE_UNCHANGED >>> | >>> - BLK_PERM_GRAPH_MOD | BLK_PERM_RESIZE | >>> BLK_PERM_WRITE, >>> - errp); >>> + shared_perm = BLK_PERM_CONSISTENT_READ | BLK_PERM_WRITE_UNCHANGED | >>> + BLK_PERM_GRAPH_MOD | BLK_PERM_RESIZE; >> >> I'm not so sure BLK_PERM_RESIZE belongs here. > > Where does it belong in your opinion?
Not unconditionally here, probably. > An option that I considered was adding BLK_PERM_RESIZE in > blk_set_dev_ops() if op.resize_cb != NULL, but it felt a bit too > implicit to me. > > Or I guess we can just add another bool parameter? It all depends on whether the device model can handle online resizes. I think a bool parameter would be fine. Max
signature.asc
Description: OpenPGP digital signature