[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 11/25] block: Mark bdrv_filter_child() and callers GRAPH_RDLOCK
|
From: |
Kevin Wolf |
|
Subject: |
[PULL 11/25] block: Mark bdrv_filter_child() and callers GRAPH_RDLOCK |
|
Date: |
Tue, 7 Nov 2023 19:45:51 +0100 |
This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_filter_child() need to hold a reader lock for the graph because it
accesses bs->file/backing.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-12-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
include/block/block_int-io.h | 4 ++--
block.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/block/block_int-io.h b/include/block/block_int-io.h
index 4e7bf57a5e..17547a2dab 100644
--- a/include/block/block_int-io.h
+++ b/include/block/block_int-io.h
@@ -131,8 +131,8 @@ int co_wrapper_mixed_bdrv_rdlock
bdrv_refresh_total_sectors(BlockDriverState *bs, int64_t hint);
BdrvChild *bdrv_cow_child(BlockDriverState *bs);
-BdrvChild *bdrv_filter_child(BlockDriverState *bs);
-BdrvChild *bdrv_filter_or_cow_child(BlockDriverState *bs);
+BdrvChild * GRAPH_RDLOCK bdrv_filter_child(BlockDriverState *bs);
+BdrvChild * GRAPH_RDLOCK bdrv_filter_or_cow_child(BlockDriverState *bs);
BdrvChild * GRAPH_RDLOCK bdrv_primary_child(BlockDriverState *bs);
BlockDriverState * GRAPH_RDLOCK bdrv_skip_filters(BlockDriverState *bs);
BlockDriverState * GRAPH_RDLOCK bdrv_backing_chain_next(BlockDriverState *bs);
diff --git a/block.c b/block.c
index bb322df7d8..499b147315 100644
--- a/block.c
+++ b/block.c
@@ -8491,8 +8491,8 @@ BdrvChild *bdrv_primary_child(BlockDriverState *bs)
return found;
}
-static BlockDriverState *bdrv_do_skip_filters(BlockDriverState *bs,
- bool stop_on_explicit_filter)
+static BlockDriverState * GRAPH_RDLOCK
+bdrv_do_skip_filters(BlockDriverState *bs, bool stop_on_explicit_filter)
{
BdrvChild *c;
--
2.41.0
- [PULL 00/25] Block layer patches, Kevin Wolf, 2023/11/07
- [PULL 07/25] block: Mark bdrv_skip_implicit_filters() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/11/07
- [PULL 04/25] block: Mark bdrv_root_attach_child() GRAPH_WRLOCK, Kevin Wolf, 2023/11/07
- [PULL 02/25] block: Mark bdrv_has_zero_init() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/11/07
- [PULL 03/25] block: Mark bdrv_filter_bs() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/11/07
- [PULL 24/25] block: Protect bs->file with graph_lock, Kevin Wolf, 2023/11/07
- [PULL 01/25] block: Mark bdrv_probe_blocksizes() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/11/07
- [PULL 11/25] block: Mark bdrv_filter_child() and callers GRAPH_RDLOCK,
Kevin Wolf <=
- [PULL 12/25] block: Mark bdrv_cow_child() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/11/07
- [PULL 09/25] block: Mark bdrv_(un)freeze_backing_chain() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/11/07
- [PULL 10/25] block: Mark bdrv_chain_contains() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/11/07
- [PULL 05/25] block: Mark block_job_add_bdrv() GRAPH_WRLOCK, Kevin Wolf, 2023/11/07
- [PULL 06/25] block: Mark bdrv_filter_or_cow_bs() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/11/07
- [PULL 13/25] block: Mark bdrv_set_backing_hd_drained() GRAPH_WRLOCK, Kevin Wolf, 2023/11/07
- [PULL 23/25] block: Take graph lock for most of .bdrv_open, Kevin Wolf, 2023/11/07
- [PULL 17/25] block: Protect bs->backing with graph_lock, Kevin Wolf, 2023/11/07
- [PULL 22/25] vhdx: Take locks for accessing bs->file, Kevin Wolf, 2023/11/07
- [PULL 08/25] block: Mark bdrv_skip_filters() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/11/07