Qcow2 allocates new clusters after the end of the file. If it is the destinaton of copy offloading, we must adjust dst->bs->total_sectors. Otherwise, further reads will drop to the "beyond EOF" code path and return zeroes, which problem is caught by iotests 222.
Follow the logic in the normal write code and update bs->total_sectors after I/O is done. While at it, add a few convenient trace points to aid future debug experiences in the topic. Fam Zheng (2): block: Fix dst total_sectors after copy offloading block: Add copy offloading trace points block/file-posix.c | 2 ++ block/io.c | 6 ++++++ block/iscsi.c | 3 +++ block/trace-events | 6 ++++++ 4 files changed, 17 insertions(+) -- 2.17.1