Implement flush for virtio-blk

This commit is contained in:
Cautreoxit
2024-10-28 21:49:25 +08:00
committed by Tate, Hongliang Tian
parent 197d53c0ab
commit 32572e22d9
2 changed files with 66 additions and 1 deletions

View File

@ -83,6 +83,18 @@ impl dyn BlockDevice {
let bio = create_bio_from_frame(BioType::Write, bid, frame);
bio.submit(self)
}
/// Issues a sync request
pub fn sync(&self) -> Result<BioStatus, BioEnqueueError> {
let bio = Bio::new(
BioType::Flush,
Sid::from(Bid::from_offset(0)),
vec![],
Some(general_complete_fn),
);
let status = bio.submit_and_wait(self)?;
Ok(status)
}
}
impl VmIo for dyn BlockDevice {