Message ID | 1495830130-30611-15-git-send-email-kwolf@redhat.com |
---|---|
State | New |
Headers | show |
On Fri, May 26, 2017 at 10:21:55PM +0200, Kevin Wolf wrote: > Note that this code is generally not running in coroutine context, so > this is an actual blocking synchronous operation. We'll fix this in a > moment. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > block/qed.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
diff --git a/block/qed.c b/block/qed.c index e9417d0..0972936 100644 --- a/block/qed.c +++ b/block/qed.c @@ -1325,9 +1325,11 @@ static void qed_aio_read_data(void *opaque, int ret, } BLKDBG_EVENT(bs->file, BLKDBG_READ_AIO); - bdrv_aio_readv(bs->file, offset / BDRV_SECTOR_SIZE, - &acb->cur_qiov, acb->cur_qiov.size / BDRV_SECTOR_SIZE, - qed_aio_next_io_cb, acb); + ret = bdrv_preadv(bs->file, offset, &acb->cur_qiov); + if (ret < 0) { + goto err; + } + qed_aio_next_io(acb, 0); return; err:
Note that this code is generally not running in coroutine context, so this is an actual blocking synchronous operation. We'll fix this in a moment. Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- block/qed.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)