]> xenbits.xensource.com Git - qemu-xen.git/commit
block: Allow freezing BdrvChild links
authorAlberto Garcia <berto@igalia.com>
Tue, 12 Mar 2019 16:48:40 +0000 (18:48 +0200)
committerKevin Wolf <kwolf@redhat.com>
Tue, 12 Mar 2019 19:30:14 +0000 (20:30 +0100)
commit2cad1ebe701eccfe3b5a6b1eb277c4f3c5055665
treee9d6c38ee2f0e2d72352e2320f70043a3aaa089f
parent9d6459d21a6e630264ead21558d940366d2f2450
block: Allow freezing BdrvChild links

Our permission system is useful to define what operations are allowed
on a certain block node and includes things like BLK_PERM_WRITE or
BLK_PERM_RESIZE among others.

One of the permissions is BLK_PERM_GRAPH_MOD which allows "changing
the node that this BdrvChild points to". The exact meaning of this has
never been very clear, but it can be understood as "change any of the
links connected to the node". This can be used to prevent changing a
backing link, but it's too coarse.

This patch adds a new 'frozen' attribute to BdrvChild, which forbids
detaching the link from the node it points to, and new API to freeze
and unfreeze a backing chain.

After this change a few functions can fail, so they need additional
checks.

Signed-off-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block.c
include/block/block.h
include/block/block_int.h