block: vhdx: Use AlignedFile for O_DIRECT-safe I/O

By redirecting VHDx I/O through the AlignedFile the required RMW
semantics can be achieved for writes less than the logical block size
whilt reusing the same logic used for other backend implementations.

Assisted-by: Claude:Opus-4.8
Signed-off-by: Rob Bradford <rbradford@meta.com>
This commit is contained in:
Rob Bradford
2026-06-12 10:23:22 +01:00
parent 80a0393edd
commit b4c1d85327
9 changed files with 169 additions and 115 deletions

View File

@@ -68,6 +68,13 @@ impl AlignedFile {
alignment: self.alignment,
})
}
/// Wrap `file` with an explicit alignment, bypassing the probe. Used by
/// tests to force the bounce/RMW path without a real O_DIRECT fd.
#[cfg(test)]
pub fn with_alignment(file: File, alignment: usize) -> Self {
AlignedFile { file, alignment }
}
}
impl FileExt for AlignedFile {