From 5578f329cfa813326e0ee369afa50f475bdde3e0 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Wed, 25 Mar 2026 16:37:26 +0100 Subject: [PATCH] block: vhdx: impl PhysicalSize for VhdxDiskSync Explicitly matches GetFileMetadata to preserve the original error type. Signed-off-by: Anatol Belski --- block/src/vhdx_sync.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/block/src/vhdx_sync.rs b/block/src/vhdx_sync.rs index 7a863a864..d52e0667e 100644 --- a/block/src/vhdx_sync.rs +++ b/block/src/vhdx_sync.rs @@ -45,6 +45,21 @@ impl disk_file::DiskSize for VhdxDiskSync { } } +impl disk_file::PhysicalSize for VhdxDiskSync { + fn physical_size(&self) -> BlockResult { + 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 { Ok(self.vhdx_file.lock().unwrap().virtual_disk_size())