v9: Fix the one bug Max found: "shrink *= chunk_sectors". v8: Rebase onto master (didn't pick up Max's rev-by due to non-trivial code change).
The conflict is around removed lines about "max_iov" and "IOV_MAX" due to commit 3515727f3, but this also reveals this series forgot that check. So this revision adds it back: - Two new fields in MirrorBlockJob are added to cache size info: target_cluster_sectors and max_iov. - mirror_align_cow compares nb_chunks and max_iov, and cut the tail appropriately. - The orphan trace point is removed from trace-events. Patch 1 rewrites mirror_iteration. Patch 2 is a small DRY cleaning up. The main benefit is copying unallocated sectors (both zeroed and discarded) doesn't go through the iov setup loop, as they don't need it. Fam Zheng (2): mirror: Rewrite mirror_iteration mirror: Add mirror_wait_for_io block/mirror.c | 365 +++++++++++++++++++++++++++++++++++---------------------- trace-events | 1 - 2 files changed, 225 insertions(+), 141 deletions(-) -- 2.4.3