E.g.,
(1) recovery_info.copy_subset = [0,
4194304]
(2) copy_subset(fiemap) = [0, 8192]
(3) out_op->data_included.span_of(copy_subset, 0,
4194304) = [0, 8192]
We'll set new_progress.data_recovered_to = 8192 as a result, and
fail to complete the push in one go.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
out_op->data_included.span_of(copy_subset, progress.data_recovered_to,
available);
- if (out_op->data_included.empty()) // zero filled section, skip to end!
+ // zero filled section, skip to end!
+ if (out_op->data_included.empty() ||
+ out_op->data_included.range_end() == copy_subset.range_end())
new_progress.data_recovered_to = recovery_info.copy_subset.range_end();
else
new_progress.data_recovered_to = out_op->data_included.range_end();