[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 15/24] block: Mark bdrv_replace_node_common() GRAPH_WRLOCK
|
From: |
Eric Blake |
|
Subject: |
Re: [PATCH 15/24] block: Mark bdrv_replace_node_common() GRAPH_WRLOCK |
|
Date: |
Fri, 27 Oct 2023 16:27:11 -0500 |
|
User-agent: |
NeoMutt/20231023 |
On Fri, Oct 27, 2023 at 05:53:24PM +0200, Kevin Wolf wrote:
> Instead of taking the writer lock internally, require callers to already
> hold it when calling bdrv_replace_node_common(). Basically everthing in
> the function needs the lock and its callers may already want to hold the
> graph lock and so wouldn't be able to call functions that take it
> internally.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
> block.c | 68 ++++++++++++++++++++++++++++++++++++---------------------
> 1 file changed, 43 insertions(+), 25 deletions(-)
>
> diff --git a/block.c b/block.c
> index dc43e36f69..c7409cf658 100644
> --- a/block.c
> +++ b/block.c
> @@ -5412,6 +5412,9 @@ bdrv_replace_node_noperm(BlockDriverState *from,
> }
>
> /*
> + * Switch all parents of @from to point to @to instead. @from and @to must
> be in
> + * the same AioContext and both must be drained.
> + *
> * With auto_skip=true bdrv_replace_node_common skips updating from parents
> * if it creates a parent-child relation loop or if parent is block-job.
Useful doc addition, even though the commit message doesn't mention
it. I see no problem with keeping it.
Reviewed-by: Eric Blake <eblake@redhat.com>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization: qemu.org | libguestfs.org
- Re: [PATCH 11/24] block: Mark bdrv_filter_child() and callers GRAPH_RDLOCK, (continued)
- [PATCH 10/24] block: Mark bdrv_chain_contains() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/10/27
- [PATCH 04/24] block: Mark bdrv_root_attach_child() GRAPH_WRLOCK, Kevin Wolf, 2023/10/27
- [PATCH 14/24] block: Inline bdrv_set_backing_noperm(), Kevin Wolf, 2023/10/27
- [PATCH 16/24] block: Mark bdrv_replace_node() GRAPH_WRLOCK, Kevin Wolf, 2023/10/27
- [PATCH 15/24] block: Mark bdrv_replace_node_common() GRAPH_WRLOCK, Kevin Wolf, 2023/10/27
- Re: [PATCH 15/24] block: Mark bdrv_replace_node_common() GRAPH_WRLOCK,
Eric Blake <=
- [PATCH 18/24] blkverify: Add locking for request_fn, Kevin Wolf, 2023/10/27
- [PATCH 22/24] vhdx: Take locks for accessing bs->file, Kevin Wolf, 2023/10/27
- [PATCH 21/24] qcow2: Take locks for accessing bs->file, Kevin Wolf, 2023/10/27
- [PATCH 23/24] block: Take graph lock for most of .bdrv_open, Kevin Wolf, 2023/10/27
- [PATCH 19/24] block: Introduce bdrv_co_change_backing_file(), Kevin Wolf, 2023/10/27