recovered(bad_lo, end); *pos_inout = end;
return (0);
}
- step = step_factor*(bad_hi - bad_lo);
+ step = (step_factor - 1)*(bad_hi - bad_lo);
if (step < step_min) step = step_min;
if (step_max && step > step_max) step = step_max;
- if (step > end - bad_lo) step = end - bad_lo;
- pos = bad_lo + step - 1;
+ if (step > end - bad_hi) step = end - bad_hi;
+ pos = bad_hi + step - 1;
want = run_length_wanted(pos, step, end);
n = recovery_read(&r, pos, want);
#ifdef DEBUG