From ed03dafc534fd2e99ad84078dadc413667273d77 Mon Sep 17 00:00:00 2001 From: Yang Kaiyong Date: Thu, 23 Jan 2025 14:13:42 +0800 Subject: [PATCH] fix: Support building rafs without the dedup feature Signed-off-by: Yang Kaiyong --- rafs/Cargo.toml | 1 - storage/src/cache/cachedfile.rs | 4 ++++ storage/src/cache/filecache/mod.rs | 7 ++++++- storage/src/cache/fscache/mod.rs | 7 ++++++- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/rafs/Cargo.toml b/rafs/Cargo.toml index 21ea4338f70..a4a4af88f1c 100644 --- a/rafs/Cargo.toml +++ b/rafs/Cargo.toml @@ -25,7 +25,6 @@ thiserror = "1" nydus-api = { version = "0.3", path = "../api" } nydus-storage = { version = "0.6", path = "../storage", features = [ "backend-localfs", - "dedup", ] } nydus-utils = { version = "0.4", path = "../utils" } diff --git a/storage/src/cache/cachedfile.rs b/storage/src/cache/cachedfile.rs index 8ac1f098cbf..dbd10d209a0 100644 --- a/storage/src/cache/cachedfile.rs +++ b/storage/src/cache/cachedfile.rs @@ -297,6 +297,7 @@ impl FileCacheEntry { }; let res = Self::persist_cached_data(&file, offset, buf); Self::_update_chunk_pending_status(&delayed_chunk_map, chunk.as_ref(), res.is_ok()); + #[cfg(feature = "dedup")] if let Some(mgr) = cas_mgr { if let Err(e) = mgr.record_chunk(&blob_info, chunk.deref(), file_path.as_ref()) { warn!( @@ -312,6 +313,7 @@ impl FileCacheEntry { let offset = chunk.uncompressed_offset(); let res = Self::persist_cached_data(&self.file, offset, buf); self.update_chunk_pending_status(chunk, res.is_ok()); + #[cfg(feature = "dedup")] if let Some(mgr) = &self.cas_mgr { if let Err(e) = mgr.record_chunk(&self.blob_info, chunk, self.file_path.as_ref()) { warn!( @@ -1079,6 +1081,7 @@ impl FileCacheEntry { Err(e) => return Err(einval!(e)), }; + #[cfg(feature = "dedup")] if !is_ready { if let Some(mgr) = self.cas_mgr.as_ref() { is_ready = mgr.dedup_chunk(&self.blob_info, chunk.deref(), &self.file); @@ -1481,6 +1484,7 @@ impl FileCacheEntry { } } +#[cfg(feature = "dedup")] impl Drop for FileCacheEntry { fn drop(&mut self) { if let Some(cas_mgr) = &self.cas_mgr { diff --git a/storage/src/cache/filecache/mod.rs b/storage/src/cache/filecache/mod.rs index 409fa692a62..e0934a208c2 100644 --- a/storage/src/cache/filecache/mod.rs +++ b/storage/src/cache/filecache/mod.rs @@ -215,7 +215,12 @@ impl FileCacheEntry { warn!("chunk deduplication trun off"); None } else { - CasMgr::get_singleton() + #[cfg(feature = "dedup")] + { + CasMgr::get_singleton() + } + #[cfg(not(feature = "dedup"))] + None }; let blob_compressed_size = Self::get_blob_size(&reader, &blob_info)?; diff --git a/storage/src/cache/fscache/mod.rs b/storage/src/cache/fscache/mod.rs index 6b22386b2cd..7874cb8c6aa 100644 --- a/storage/src/cache/fscache/mod.rs +++ b/storage/src/cache/fscache/mod.rs @@ -245,7 +245,12 @@ impl FileCacheEntry { warn!("chunk deduplication trun off"); None } else { - CasMgr::get_singleton() + #[cfg(feature = "dedup")] + { + CasMgr::get_singleton() + } + #[cfg(not(feature = "dedup"))] + None }; let need_validation = mgr.need_validation