block/block-backend: add blk_co_pwritev_part
Add blk write function with qiov_offset parameter. It's needed for the following commit. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Message-id: 20191011090711.19940-4-vsementsov@virtuozzo.com Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
5c511ac375
commit
b30168647f
@ -1178,9 +1178,10 @@ int coroutine_fn blk_co_preadv(BlockBackend *blk, int64_t offset,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int coroutine_fn blk_co_pwritev(BlockBackend *blk, int64_t offset,
|
int coroutine_fn blk_co_pwritev_part(BlockBackend *blk, int64_t offset,
|
||||||
unsigned int bytes, QEMUIOVector *qiov,
|
unsigned int bytes,
|
||||||
BdrvRequestFlags flags)
|
QEMUIOVector *qiov, size_t qiov_offset,
|
||||||
|
BdrvRequestFlags flags)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
BlockDriverState *bs;
|
BlockDriverState *bs;
|
||||||
@ -1207,11 +1208,19 @@ int coroutine_fn blk_co_pwritev(BlockBackend *blk, int64_t offset,
|
|||||||
flags |= BDRV_REQ_FUA;
|
flags |= BDRV_REQ_FUA;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = bdrv_co_pwritev(blk->root, offset, bytes, qiov, flags);
|
ret = bdrv_co_pwritev_part(blk->root, offset, bytes, qiov, qiov_offset,
|
||||||
|
flags);
|
||||||
bdrv_dec_in_flight(bs);
|
bdrv_dec_in_flight(bs);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int coroutine_fn blk_co_pwritev(BlockBackend *blk, int64_t offset,
|
||||||
|
unsigned int bytes, QEMUIOVector *qiov,
|
||||||
|
BdrvRequestFlags flags)
|
||||||
|
{
|
||||||
|
return blk_co_pwritev_part(blk, offset, bytes, qiov, 0, flags);
|
||||||
|
}
|
||||||
|
|
||||||
typedef struct BlkRwCo {
|
typedef struct BlkRwCo {
|
||||||
BlockBackend *blk;
|
BlockBackend *blk;
|
||||||
int64_t offset;
|
int64_t offset;
|
||||||
|
@ -121,6 +121,10 @@ void blk_set_dev_ops(BlockBackend *blk, const BlockDevOps *ops, void *opaque);
|
|||||||
int coroutine_fn blk_co_preadv(BlockBackend *blk, int64_t offset,
|
int coroutine_fn blk_co_preadv(BlockBackend *blk, int64_t offset,
|
||||||
unsigned int bytes, QEMUIOVector *qiov,
|
unsigned int bytes, QEMUIOVector *qiov,
|
||||||
BdrvRequestFlags flags);
|
BdrvRequestFlags flags);
|
||||||
|
int coroutine_fn blk_co_pwritev_part(BlockBackend *blk, int64_t offset,
|
||||||
|
unsigned int bytes,
|
||||||
|
QEMUIOVector *qiov, size_t qiov_offset,
|
||||||
|
BdrvRequestFlags flags);
|
||||||
int coroutine_fn blk_co_pwritev(BlockBackend *blk, int64_t offset,
|
int coroutine_fn blk_co_pwritev(BlockBackend *blk, int64_t offset,
|
||||||
unsigned int bytes, QEMUIOVector *qiov,
|
unsigned int bytes, QEMUIOVector *qiov,
|
||||||
BdrvRequestFlags flags);
|
BdrvRequestFlags flags);
|
||||||
|
Loading…
Reference in New Issue
Block a user