From 8b6eb83f2a833cf721edacdf5d286bbc63d9730a Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Wed, 25 Mar 2026 23:21:45 +0100 Subject: [PATCH] block: qcow: raw_file: Use query_device_size() for size queries Use query_device_size() instead of metadata().len() to correctly handle block device and regular file handles. Signed-off-by: Anatol Belski --- block/src/qcow/raw_file.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/block/src/qcow/raw_file.rs b/block/src/qcow/raw_file.rs index 06ec4975f..56ec79735 100644 --- a/block/src/qcow/raw_file.rs +++ b/block/src/qcow/raw_file.rs @@ -20,7 +20,7 @@ use vmm_sys_util::file_traits::FileSync; use vmm_sys_util::seek_hole::SeekHole; use vmm_sys_util::write_zeroes::{PunchHole, WriteZeroesAt}; -use crate::BlockBackend; +use crate::{BlockBackend, query_device_size}; #[derive(Debug)] pub struct RawFile { @@ -374,11 +374,15 @@ impl SeekHole for RawFile { impl BlockBackend for RawFile { fn logical_size(&self) -> std::result::Result { - Ok(self.metadata().map_err(crate::Error::RawFileError)?.len()) + Ok(query_device_size(&self.file) + .map_err(crate::Error::RawFileError)? + .0) } fn physical_size(&self) -> std::result::Result { - Ok(self.metadata().map_err(crate::Error::RawFileError)?.len()) + Ok(query_device_size(&self.file) + .map_err(crate::Error::RawFileError)? + .1) } }