linux-aio: Cancel BH if not needed
commitccb9dc10129954d0bcd7814298ed445e684d5a2a
authorKevin Wolf <kwolf@redhat.com>
Fri, 28 Nov 2014 14:23:12 +0000 (28 15:23 +0100)
committerKevin Wolf <kwolf@redhat.com>
Thu, 16 Jun 2016 13:19:55 +0000 (16 15:19 +0200)
treea49245ab66bad93ba8e4c5f7776ac02e5f31770a
parent23b0d9fb1dd39d85fc2e0cabba5cbe005126e7b5
linux-aio: Cancel BH if not needed

linux-aio uses a BH in order to make sure that the remaining completions
are processed even in nested event loops of completion callbacks in
order to avoid deadlocks.

There is no need, however, to have the BH overhead for the first call
into qemu_laio_completion_bh() or after all pending completions have
already been processed. Therefore, this patch calls directly into
qemu_laio_completion_bh() in qemu_laio_completion_cb() and cancels
the BH after qemu_laio_completion_bh() has processed all pending
completions.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
block/linux-aio.c