block: Mark bdrv_parent_cb_resize() and callers GRAPH_RDLOCK
This adds GRAPH_RDLOCK annotations to declare that callers of bdrv_parent_cb_resize() need to hold a reader lock for the graph. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-ID: <20230929145157.45443-7-kwolf@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
d05ab380db
commit
7859c45a46
12
block/io.c
12
block/io.c
@ -42,7 +42,9 @@
|
|||||||
/* Maximum bounce buffer for copy-on-read and write zeroes, in bytes */
|
/* Maximum bounce buffer for copy-on-read and write zeroes, in bytes */
|
||||||
#define MAX_BOUNCE_BUFFER (32768 << BDRV_SECTOR_BITS)
|
#define MAX_BOUNCE_BUFFER (32768 << BDRV_SECTOR_BITS)
|
||||||
|
|
||||||
static void bdrv_parent_cb_resize(BlockDriverState *bs);
|
static void coroutine_fn GRAPH_RDLOCK
|
||||||
|
bdrv_parent_cb_resize(BlockDriverState *bs);
|
||||||
|
|
||||||
static int coroutine_fn bdrv_co_do_pwrite_zeroes(BlockDriverState *bs,
|
static int coroutine_fn bdrv_co_do_pwrite_zeroes(BlockDriverState *bs,
|
||||||
int64_t offset, int64_t bytes, BdrvRequestFlags flags);
|
int64_t offset, int64_t bytes, BdrvRequestFlags flags);
|
||||||
|
|
||||||
@ -2027,7 +2029,7 @@ bdrv_co_write_req_prepare(BdrvChild *child, int64_t offset, int64_t bytes,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void coroutine_fn
|
static inline void coroutine_fn GRAPH_RDLOCK
|
||||||
bdrv_co_write_req_finish(BdrvChild *child, int64_t offset, int64_t bytes,
|
bdrv_co_write_req_finish(BdrvChild *child, int64_t offset, int64_t bytes,
|
||||||
BdrvTrackedRequest *req, int ret)
|
BdrvTrackedRequest *req, int ret)
|
||||||
{
|
{
|
||||||
@ -3530,9 +3532,13 @@ int coroutine_fn bdrv_co_copy_range(BdrvChild *src, int64_t src_offset,
|
|||||||
bytes, read_flags, write_flags);
|
bytes, read_flags, write_flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bdrv_parent_cb_resize(BlockDriverState *bs)
|
static void coroutine_fn GRAPH_RDLOCK
|
||||||
|
bdrv_parent_cb_resize(BlockDriverState *bs)
|
||||||
{
|
{
|
||||||
BdrvChild *c;
|
BdrvChild *c;
|
||||||
|
|
||||||
|
assert_bdrv_graph_readable();
|
||||||
|
|
||||||
QLIST_FOREACH(c, &bs->parents, next_parent) {
|
QLIST_FOREACH(c, &bs->parents, next_parent) {
|
||||||
if (c->klass->resize) {
|
if (c->klass->resize) {
|
||||||
c->klass->resize(c);
|
c->klass->resize(c);
|
||||||
|
Loading…
Reference in New Issue
Block a user