diff --git a/block/src/qcow_async.rs b/block/src/qcow_async.rs index 388dcab55..226ed7bcf 100644 --- a/block/src/qcow_async.rs +++ b/block/src/qcow_async.rs @@ -8,8 +8,10 @@ use std::fmt; use std::fs::File; +use std::os::fd::{AsFd, AsRawFd}; use std::sync::Arc; +use crate::async_io::BorrowedDiskFd; use crate::disk_file; use crate::error::{BlockErrorKind, BlockResult, ErrorOp}; use crate::qcow::backing::shared_backing_from; @@ -81,3 +83,9 @@ impl disk_file::PhysicalSize for QcowDiskAsync { Ok(self.data_raw_file.physical_size()?) } } + +impl disk_file::DiskFd for QcowDiskAsync { + fn fd(&self) -> BorrowedDiskFd<'_> { + BorrowedDiskFd::new(self.data_raw_file.as_fd().as_raw_fd()) + } +}