block: Lock AioContext for drain_end in blockdev-reopen
commitaba8205be0707b9d108e32254e186ba88107a869
authorKevin Wolf <kwolf@redhat.com>
Thu, 3 Feb 2022 14:05:33 +0000 (3 15:05 +0100)
committerKevin Wolf <kwolf@redhat.com>
Fri, 11 Feb 2022 08:44:16 +0000 (11 09:44 +0100)
tree8bf1266a5df2ac9e32eb8facf5e98da779bd5bcc
parent0a301624c2f4ced3331ffd5bce85b4274fe132af
block: Lock AioContext for drain_end in blockdev-reopen

bdrv_subtree_drained_end() requires the caller to hold the AioContext
lock for the drained node. Not doing this for nodes outside of the main
AioContext leads to crashes when AIO_WAIT_WHILE() needs to wait and
tries to temporarily release the lock.

Fixes: 3908b7a8994fa5ef7a89aa58cd5a02fc58141592
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2046659
Reported-by: Qing Wang <qinwang@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20220203140534.36522-2-kwolf@redhat.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
blockdev.c