disc/patch: extract PatchCtx/patch_region orchestration + unify log taxonomy
Pure structural refactor of the Pass-N recovery path, no behavior change. - PatchCtx<R> holds the one-pass context (reader, pipe, shared, opts, reused read buffer, cross-region state) and owns orchestration. - PatchCtx::run() walks the ordered bad ranges, applies the inter-range cooldown (armed on a grind, consumed at the next range's entry), and stops the pass the moment a range reports halt/wedge/transport-fault. - PatchCtx::patch_region() is the focused single-range loop: read -> success/failure -> damage-skip -> per-range watchdog. Every former break / break 'outer is now a typed RegionOutcome (Completed, SkipLimit, BudgetExceeded, Wedged, Halted, TransportFault) that run() maps back to next-range vs stop-pass exactly as before. - recovery_read() extracts the AACS mid-unit-window widening + plain read into one reusable helper (the building block the upcoming scatter re-read will share). - Logging unified onto a single dotted patch.* taxonomy (patch.region.*, patch.read.*, patch.probe.*, patch.wedge.*, patch.batch.*, patch.mapfile.*, patch.skip.*, patch.stall, patch.speed); the freemkv::scan pass-boundary markers are left intact. 20/20 disc::patch tests green; precommit (fmt + clippy -D warnings + tests) clean on Rust 1.86.
This commit is contained in:
+471
-360
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user