The 1st patch fixes batch submission. The 2nd one fixes -EAGAIN for non-batch case.
The 3rd one is a cleanup. This patchset is splitted from previous patchset(dataplane: optimization and multi virtqueue support), as suggested by Stefan. V7: - add protection for aborting in laio_attach_aio_context(), as suggested by Stefan, 1/3 - patch style, return real aborting failure to caller, as suggested by Kevin, 1/3 - track pending I/O and only handle -EAGAIN if there is pending I/O, pointed by Kevin, 2/3 V6: - don't pass ioq_submit() return value to ioq_enqueue(), as suggested by Stefan - fix one build failure introduced in V5, reported by Stefan V5: - in case of submission failure, return -EIO for new coming requests until aborting is handled - in patch2, follow Paolo's suggestion about ioq_enqueue() changes V4: - abort reuqests in BH to abvoid potential "Co-routine re-entered recursively" - remove 'enqueue' parameter to ioq_submit() to simpify change - beautify code as suggested by Paolo V3: - rebase on QEMU master V2: - code style fix and commit log fix as suggested by BenoƮt Canet V1: - rebase on latest QEMU master block/linux-aio.c | 139 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 116 insertions(+), 23 deletions(-) Thanks, Ming Lei