From d79fdd6b79ae0893a9231bd40775f6e94f1a1754 Mon Sep 17 00:00:00 2001 From: Filippo Casarin Date: Sat, 20 Jan 2024 04:01:47 +0100 Subject: [PATCH] fix image stats --- pixie-server/src/state.rs | 8 ++++---- pixie-uefi/src/pull.rs | 3 --- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/pixie-server/src/state.rs b/pixie-server/src/state.rs index b16f09f..d7dd815 100644 --- a/pixie-server/src/state.rs +++ b/pixie-server/src/state.rs @@ -20,7 +20,7 @@ fn atomic_write(path: &Path, data: &[u8]) -> Result<()> { Ok(()) } -fn get_image_disk_size(image: &Image) -> u64 { +fn get_image_csize(image: &Image) -> u64 { let mut chunks: Vec<_> = image .disk .iter() @@ -119,7 +119,7 @@ impl State { } let content = fs::read(&path)?; let image = postcard::from_bytes::(&content)?; - let csize = get_image_disk_size(&image); + let csize = get_image_csize(&image); let mut size = 0; for chunk in image.disk { size += chunk.size as u64; @@ -200,8 +200,8 @@ impl State { let path = self.storage_dir.join("images").join(&name); let data = postcard::to_allocvec(&image)?; - let size = get_image_disk_size(&image); - let csize = image.disk.iter().map(|chunk| chunk.csize as u64).sum(); + let size = image.disk.iter().map(|chunk| chunk.size as u64).sum(); + let csize = get_image_csize(&image); self.image_stats.send_modify(|image_stats| { let mut chunk_stats = self.chunk_stats.lock().unwrap(); diff --git a/pixie-uefi/src/pull.rs b/pixie-uefi/src/pull.rs index 5aef2de..5865658 100644 --- a/pixie-uefi/src/pull.rs +++ b/pixie-uefi/src/pull.rs @@ -203,7 +203,6 @@ pub async fn pull(os: UefiOS, server_addr: Address, image: String, chunks_port: let mut found = None; let mut buf = vec![0; size]; for &offset in &pos { - os.schedule().await; disk.read(offset as u64, &mut buf).await.unwrap(); if blake3::hash(&buf).as_bytes() == &hash { found = Some(offset); @@ -213,7 +212,6 @@ pub async fn pull(os: UefiOS, server_addr: Address, image: String, chunks_port: if let Some(found) = found { for &offset in &pos { if offset != found { - os.schedule().await; disk.write(offset as u64, &buf).await.unwrap(); } } @@ -265,7 +263,6 @@ pub async fn pull(os: UefiOS, server_addr: Address, image: String, chunks_port: let task2 = async { while let Some((pos, data)) = rx.recv().await { for offset in pos { - os.schedule().await; disk.write(offset as u64, &data).await?; }