On Fri, May 28, 2021 at 05:16:28PM +0300, Vladimir Sementsov-Ogievskiy wrote:
@@ -183,6 +184,7 @@ static BlockCopyTask *block_copy_task_create(BlockCopyState
*s,
.call_state = call_state,
.offset = offset,
.bytes = bytes,
+ .copy_range = s->use_copy_range,
};
qemu_co_queue_init(&task->wait_queue);
QLIST_INSERT_HEAD(&s->tasks, task, list);
@@ -342,11 +344,17 @@ static coroutine_fn int block_copy_task_run(AioTaskPool
*pool,
*
* No sync here: nor bitmap neighter intersecting requests handling, only
copy.
*
+ * @copy_range is in-out argument: if *copy_range is false, copy_range is not
s/is in-out argument/is an in-out argument/
+ * done. If *copy_range is true, copy_range attempt is done. If copy_range
s/copy_range attempt is done/copy_range is attempted/
+ * attempt failed, the function fallback to usual read+write and *copy_range is
If the copy_range attempt fails, the function falls back to the usual
read+write and ...