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.
This is a follow-up to #1105, so only look at the last commit (b78c987). I'm marking it as a draft until #1105 is merged; then I'll rebase it onto
main
.This PR makes
Buffer
operations stricter: reads and writes now panic if we try to access aBuffer
without block alignment. To make this less dangerous, the relevant functions are changed frompub
topub(crate)
, so they can't be called from the public API. Propolis only usesBuffer::new
andBuffer::as_vec
, so that shouldn't be an issue.Within
crucible-upstairs
, I had to update the implementation ofIOSpan
to do read-modify-write operations; previously, three unit tests would panic under the strict regime.