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>
signature.asc
Description: PGP signature