On Thu, Aug 17, 2023 at 02:50:09PM +0200, Kevin Wolf wrote:
> Instead of taking the writer lock internally, require callers to already
> hold it when calling bdrv_attach_child_common(). These callers will
> typically already hold the graph lock once the locking work is
> completed, which means that they can't call functions that take it
> internally.
> 
> Note that the transaction callbacks still take the lock internally, so
> tran_finalize() must be called without the lock held. This is because
> bdrv_append() also calls bdrv_replace_node_noperm(), which currently
> requires the transaction callbacks to be called unlocked. In the next
> step, both of them can be switched to locked tran_finalize() calls
> together.
> 
> Signed-off-by: Kevin Wolf <kw...@redhat.com>
> ---
>  block.c        | 133 +++++++++++++++++++++++++++++++------------------
>  block/stream.c |  20 ++++++--
>  2 files changed, 100 insertions(+), 53 deletions(-)

Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>

Attachment: signature.asc
Description: PGP signature

Reply via email to