aboutsummaryrefslogtreecommitdiff
path: root/block/create.c
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2023-05-25 14:47:07 +0200
committerKevin Wolf <kwolf@redhat.com>2023-05-30 17:21:23 +0200
commitaa269ff888d70158fe0c26ed17814046bdc19bd5 (patch)
tree163e0772a46d4f46622c1fae63e9963dd8cfd06c /block/create.c
parent2626d27f50f3c993936db04bc6e92d553e1dc914 (diff)
qcow2: Fix open with 'file' in iothread
qcow2_open() doesn't work correctly when opening the 'file' child moves bs to an iothread, for several reasons: - It uses BDRV_POLL_WHILE() to wait for the qcow2_open_entry() coroutine, which involves dropping the AioContext lock for bs when it is not in the main context - but we don't hold it, so this crashes. - It runs the qcow2_open_entry() coroutine in the current thread instead of the new AioContext of bs. - qcow2_open_entry() doesn't notify the main loop when it's done. This patches fixes these issues around delegating work to a coroutine. Temporarily dropping the main AioContext lock is not necessary because we know we run in the main thread. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-Id: <20230525124713.401149-7-kwolf@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block/create.c')
0 files changed, 0 insertions, 0 deletions