]> git.proxmox.com Git - mirror_qemu.git/commit
ide/ahci: Check for -ECANCELED in aio callbacks
authorFam Zheng <famz@redhat.com>
Thu, 11 Sep 2014 05:41:07 +0000 (13:41 +0800)
committerStefan Hajnoczi <stefanha@redhat.com>
Mon, 22 Sep 2014 10:38:55 +0000 (11:38 +0100)
commit0d910cfeaf2076b116b4517166d5deb0fea76394
tree15b845045c18ce273e96ed5b5c6d17714ad59302
parent6698c5bed290f3852c9f200d197b5d99211bc3cd
ide/ahci: Check for -ECANCELED in aio callbacks

Before, bdrv_aio_cancel will either complete the request (like normal)
and call CB with an actual return code, or skip calling the request (for
example when the IO req is not submitted by thread pool yet).

We will change bdrv_aio_cancel to do it differently: always call CB
before return, with either [1] a normal req completion ret code, or [2]
ret == -ECANCELED. So the callers' callback must accept both cases. The
existing logic works with case [1], but not [2].

The simplest transition of callback code is do nothing in case [2], just
as if the CB is not called by the bdrv_aio_cancel() call.

Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
hw/ide/ahci.c
hw/ide/core.c