diff options
author | Fam Zheng <famz@redhat.com> | 2015-12-01 17:36:28 +0800 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2015-12-03 11:08:07 +0800 |
commit | 61408b250eaa6157e49fbdcfe21f2f53e50b9277 (patch) | |
tree | 78f39e253a091ed8e5303f0c13fa89a0f231c60c /include | |
parent | d21e8776f6578be155714ae95c7d6c1bb03e8e34 (diff) |
block: Don't wait serialising for non-COR read requests
The assertion problem was noticed in 06c3916b35a, but it wasn't
completely fixed, because even though the req is not marked as
serialising, it still gets serialised by wait_serialising_requests
against other serialising requests, which could lead to the same
assertion failure.
Fix it by even more explicitly skipping the serialising for this
specific case.
Signed-off-by: Fam Zheng <famz@redhat.com>
Message-id: 1448962590-2842-2-git-send-email-famz@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/block/block.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/block/block.h b/include/block/block.h index 73edb1a79c..3477328737 100644 --- a/include/block/block.h +++ b/include/block/block.h @@ -61,7 +61,7 @@ typedef enum { * opened with BDRV_O_UNMAP. */ BDRV_REQ_MAY_UNMAP = 0x4, - BDRV_REQ_NO_COPY_ON_READ = 0x8, + BDRV_REQ_NO_SERIALISING = 0x8, } BdrvRequestFlags; typedef struct BlockSizes { @@ -248,7 +248,7 @@ int coroutine_fn bdrv_co_readv(BlockDriverState *bs, int64_t sector_num, int nb_sectors, QEMUIOVector *qiov); int coroutine_fn bdrv_co_copy_on_readv(BlockDriverState *bs, int64_t sector_num, int nb_sectors, QEMUIOVector *qiov); -int coroutine_fn bdrv_co_no_copy_on_readv(BlockDriverState *bs, +int coroutine_fn bdrv_co_readv_no_serialising(BlockDriverState *bs, int64_t sector_num, int nb_sectors, QEMUIOVector *qiov); int coroutine_fn bdrv_co_writev(BlockDriverState *bs, int64_t sector_num, int nb_sectors, QEMUIOVector *qiov); |