提交 cbf1dff2 编写于 作者: K Kevin Wolf

block: Fix multiwrite with overlapping requests

With overlapping requests, the total number of sectors is smaller than the sum
of the nb_sectors of both requests.
Signed-off-by: NKevin Wolf <kwolf@redhat.com>
上级 175e1152
...@@ -2019,7 +2019,7 @@ static int multiwrite_merge(BlockDriverState *bs, BlockRequest *reqs, ...@@ -2019,7 +2019,7 @@ static int multiwrite_merge(BlockDriverState *bs, BlockRequest *reqs,
// Add the second request // Add the second request
qemu_iovec_concat(qiov, reqs[i].qiov, reqs[i].qiov->size); qemu_iovec_concat(qiov, reqs[i].qiov, reqs[i].qiov->size);
reqs[outidx].nb_sectors += reqs[i].nb_sectors; reqs[outidx].nb_sectors = qiov->size >> 9;
reqs[outidx].qiov = qiov; reqs[outidx].qiov = qiov;
mcb->callbacks[i].free_qiov = reqs[outidx].qiov; mcb->callbacks[i].free_qiov = reqs[outidx].qiov;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册