]> git.ipfire.org Git - thirdparty/qemu.git/commit
block: Drain nodes before inactivating them
authorKevin Wolf <kwolf@redhat.com>
Tue, 4 Feb 2025 21:14:02 +0000 (22:14 +0100)
committerKevin Wolf <kwolf@redhat.com>
Thu, 6 Feb 2025 13:45:58 +0000 (14:45 +0100)
commit2849092a0024405e74c96f0a5ec41bb182ec8538
tree233d5c9fd669d78a7b584fe44d955858227a9cfa
parent69f28176ca0af850db23a1c6364f0c8525b20801
block: Drain nodes before inactivating them

So far the assumption has always been that if we try to inactivate a
node, it is already idle. This doesn't hold true any more if we allow
inactivating exported nodes because we can't know when new external
requests come in.

Drain the node around setting BDRV_O_INACTIVE so that requests can't
start operating on an active node and then in the middle it suddenly
becomes inactive. With this change, it's enough for exports to check
for new requests that they operate on an active node (or, like reads,
are allowed even on an inactive node).

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Fabiano Rosas <farosas@suse.de>
Message-ID: <20250204211407.381505-12-kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block.c