Refactor live-repair start and send #1673
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Downstairs::begin_repair_for
had confusing semantics: it was used to both start live-repair (settingself.repair
toSome(..)
) and to send subsequent jobs. Most of its arguments were only used in one or the other case.This PR splits it into three functions:
start_live_repair
initializesself.repair
and sends the first live-repair IOsend_next_live_repair
sends the next live-repair IOsend_live_repair_jobs
to reserve repair IDs and actually send IOIn passing, I also removed the
extent_count
argument fromnotify_live_repair_progress
, since it can be computed locally (basically just pushing the change from #1672 further down the call stack).