From 1c24d483d5417131e8bae757594a8fbff6847ae8 Mon Sep 17 00:00:00 2001 From: Yureka Date: Sat, 28 Sep 2024 14:11:59 +0200 Subject: [PATCH] chore(tvix/castore/fuse): impl Layer for TvixStoreFs Allows using a TvixStoreFs in overlay filesystems Change-Id: I10e63c92776b1c783947d92070f360865ef2883c Reviewed-on: https://cl.tvl.fyi/c/depot/+/12539 Autosubmit: yuka Reviewed-by: flokli Tested-by: BuildkiteCI --- tvix/castore/src/fs/mod.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tvix/castore/src/fs/mod.rs b/tvix/castore/src/fs/mod.rs index 9c82b0a8c..d124c5629 100644 --- a/tvix/castore/src/fs/mod.rs +++ b/tvix/castore/src/fs/mod.rs @@ -24,7 +24,7 @@ use crate::{ use bstr::ByteVec; use fuse_backend_rs::abi::fuse_abi::{stat64, OpenOptions}; use fuse_backend_rs::api::filesystem::{ - Context, FileSystem, FsOptions, GetxattrReply, ListxattrReply, ROOT_ID, + Context, FileSystem, FsOptions, GetxattrReply, Layer, ListxattrReply, ROOT_ID, }; use futures::StreamExt; use parking_lot::RwLock; @@ -300,6 +300,17 @@ const ROOT_NODES_BUFFER_SIZE: usize = 16; const XATTR_NAME_DIRECTORY_DIGEST: &[u8] = b"user.tvix.castore.directory.digest"; const XATTR_NAME_BLOB_DIGEST: &[u8] = b"user.tvix.castore.blob.digest"; +impl Layer for TvixStoreFs +where + BS: AsRef + Clone + Send + 'static, + DS: AsRef + Send + Clone + 'static, + RN: RootNodes + Clone + 'static, +{ + fn root_inode(&self) -> Self::Inode { + ROOT_ID + } +} + impl FileSystem for TvixStoreFs where BS: AsRef + Clone + Send + 'static,