15.01.2021 16:02, Alberto Garcia wrote:
Hi,during the past months we talked about making x-blockdev-reopen stable API, and one of the missing things was having support for changing bs->file. See here for the discusssion (I can't find the message from Kashyap that started the thread in the web archives): https://lists.gnu.org/archive/html/qemu-block/2020-10/msg00922.html I was testing this and one of the problems that I found was that removing a filter node using this command is tricky because of the permission system, see here for details: https://lists.gnu.org/archive/html/qemu-block/2020-12/msg00092.html The good news is that Vladimir posted a set of patches that changes the way that permissions are updated on reopen: https://lists.gnu.org/archive/html/qemu-block/2020-11/msg00745.html I was testing if this would be useful to solve the problem that I mentioned earlier and it seems to be the case so I wrote a patch to add support for changing bs->file, along with a couple of test cases. This is still an RFC but you can see the idea.
Good idea and I glad to see that my patches help:) Hmm, still, removing a filter which want to unshare WRITE even when doesn't have any parents will be a problem anyway, so we'll need a new command to drop filter with a logic like in bdrv_drop_filter in my series. Or, we can introduce multiple reopen.. So that x-blockdev-reopen will take a list of BlockdevOptions, and do all modifications in one transaction. Than we'll be able to drop filter by transactional update of top node child and removing filter child link.
These patches apply on top of Vladimir's branch: git: https://src.openvz.org/scm/~vsementsov/qemu.git tag: up-block-topologic-perm-v2 Opinions are very welcome! Berto Alberto Garcia (2): block: Allow changing bs->file on reopen iotests: Update 245 to support replacing files with x-blockdev-reopen include/block/block.h | 1 + block.c | 61 ++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/245 | 61 +++++++++++++++++++++++++++++++++++--- tests/qemu-iotests/245.out | 4 +-- 4 files changed, 121 insertions(+), 6 deletions(-)
-- Best regards, Vladimir
