block: Classify bdrv_get_flags() as I/O function
authorHanna Reitz <hreitz@redhat.com>
Wed, 27 Apr 2022 11:40:54 +0000 (13:40 +0200)
committerKevin Wolf <kwolf@redhat.com>
Wed, 4 May 2022 13:55:23 +0000 (15:55 +0200)
This function is safe to call in an I/O context, and qcow2_do_open()
does so (invoked in an I/O context by qcow2_co_invalidate_cache()).

Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20220427114057.36651-2-hreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block.c
include/block/block-global-state.h
include/block/block-io.h

diff --git a/block.c b/block.c
index 8cd16e757e328cda2b43e65c03319103129c1ff2..2c00dddd809886c2010c094ab9f7125cc0c59184 100644 (file)
--- a/block.c
+++ b/block.c
@@ -6298,7 +6298,7 @@ const char *bdrv_get_device_or_node_name(const BlockDriverState *bs)
 
 int bdrv_get_flags(BlockDriverState *bs)
 {
-    GLOBAL_STATE_CODE();
+    IO_CODE();
     return bs->open_flags;
 }
 
index 25bb69bbefb90f57765717aadc306ec1d5488ef1..21265e39668588e0b4f28f86a908cab48646e50c 100644 (file)
@@ -172,7 +172,6 @@ void bdrv_next_cleanup(BdrvNextIterator *it);
 BlockDriverState *bdrv_next_monitor_owned(BlockDriverState *bs);
 void bdrv_iterate_format(void (*it)(void *opaque, const char *name),
                          void *opaque, bool read_only);
-int bdrv_get_flags(BlockDriverState *bs);
 char *bdrv_get_full_backing_filename(BlockDriverState *bs, Error **errp);
 char *bdrv_dirname(BlockDriverState *bs, Error **errp);
 
index 5e3f346806b5c3c7c07c48c8f027ed0dd2bbe8d0..62c84f051935da6e477e53804b11760bd9d06578 100644 (file)
@@ -103,6 +103,7 @@ int bdrv_apply_auto_read_only(BlockDriverState *bs, const char *errmsg,
 bool bdrv_is_read_only(BlockDriverState *bs);
 bool bdrv_is_writable(BlockDriverState *bs);
 bool bdrv_is_sg(BlockDriverState *bs);
+int bdrv_get_flags(BlockDriverState *bs);
 bool bdrv_is_inserted(BlockDriverState *bs);
 void bdrv_lock_medium(BlockDriverState *bs, bool locked);
 void bdrv_eject(BlockDriverState *bs, bool eject_flag);