bad_lo = pos; bad_hi = pos + 1;
for (;;) {
- report_bad_blocks_progress(bad_hi, errno);
#ifdef DEBUG
progress_clear(&progress);
printf(";; bounding bad-block region: "
recovered(bad_lo, end); *pos_inout = end;
return (0);
}
+ report_bad_blocks_progress(bad_hi, errno);
step = (step_factor - 1)*(bad_hi - bad_lo);
if (step < step_min) step = step_min;
if (step_max && step > step_max) step = step_max;
good = pos;
while (good > bad_hi) {
- report_bad_blocks_progress(bad_hi, errno);
#ifdef DEBUG
progress_clear(&progress);
printf(";; limiting bad-block region: "
"%"PRIuSEC" ..%"PRIuSEC".. %"PRIuSEC" ..%"PRIuSEC".. %"PRIuSEC"\n",
bad_lo, bad_hi - bad_lo, bad_hi, good - bad_hi, good);
#endif
+ report_bad_blocks_progress(bad_hi, errno);
pos = bad_hi + (good - bad_hi)/2;
step = pos - bad_lo;
want = run_length_wanted(pos, step, end);