block: vhdx: impl PhysicalSize for VhdxDiskSync

Explicitly matches GetFileMetadata to preserve the original error type.

Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
This commit is contained in:
Anatol Belski
2026-03-25 16:37:26 +01:00
committed by Bo Chen
parent 3164b66cb5
commit 5578f329cf

View File

@@ -45,6 +45,21 @@ impl disk_file::DiskSize for VhdxDiskSync {
}
}
impl disk_file::PhysicalSize for VhdxDiskSync {
fn physical_size(&self) -> BlockResult<u64> {
self.vhdx_file
.lock()
.unwrap()
.physical_size()
.map_err(|e| match e {
Error::GetFileMetadata(io) => {
BlockError::new(BlockErrorKind::Io, Error::GetFileMetadata(io))
}
_ => BlockError::new(BlockErrorKind::Io, e),
})
}
}
impl DiskFile for VhdxDiskSync {
fn logical_size(&mut self) -> DiskFileResult<u64> {
Ok(self.vhdx_file.lock().unwrap().virtual_disk_size())