summaryrefslogtreecommitdiff
path: root/block/qed-table.c
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@redhat.com>2016-06-16 17:56:26 +0100
committerStefan Hajnoczi <stefanha@redhat.com>2016-06-20 14:25:41 +0100
commite8a095dadb70e2ea6d5169d261920db3747bfa45 (patch)
tree3139d49c4ca3affbbd21565720366070c8f095a5 /block/qed-table.c
parent9f6bc648c40da61a50ea1f51048368faeea5d9a1 (diff)
downloadqemu-e8a095dadb70e2ea6d5169d261920db3747bfa45.tar.gz
block: use safe iteration over AioContext notifiers
It's possible that an AioContext notifier user was close to finishing when .detach_aio_context() or .attached_aio_context() is called. In that case they may call bdrv_remove_aio_context_notifier() during the callback. Use safe iteration to avoid crashing when the notifier list is modified during iteration. We must not only handle the case where the current aio notifier is removed during a callback but also the one where any other aio notifier is removed. The next patch adds an AioContext notifier for block jobs and they really could be terminating just as .detach_aio_context() is invoked. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Message-id: 1466096189-6477-6-git-send-email-stefanha@redhat.com
Diffstat (limited to 'block/qed-table.c')
0 files changed, 0 insertions, 0 deletions