From d661b4254605672e4518d6f985b602de5e064265 Mon Sep 17 00:00:00 2001 From: Wedson Almeida Filho Date: Wed, 29 Nov 2023 13:57:44 -0300 Subject: [PATCH] utarfs: implement the enumeration of xattrs containerd needs this in some cases when using volume mounts, so implement it to unblock containerd. Signed-off-by: Wedson Almeida Filho --- src/utarfs/src/fs.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/utarfs/src/fs.rs b/src/utarfs/src/fs.rs index ead837c7a7f6..ecbccd34df43 100644 --- a/src/utarfs/src/fs.rs +++ b/src/utarfs/src/fs.rs @@ -263,4 +263,21 @@ impl fuser::Filesystem for Tar { reply.data(b"y"); } } + + fn listxattr(&mut self, _req: &Request<'_>, ino: u64, size: u32, reply: fuser::ReplyXattr) { + let inode = match self.inode(ino) { + Ok(i) => i, + Err(e) => return reply.error(e), + }; + if inode.flags & inode_flags::OPAQUE == 0 { + return reply.data(&[]); + } + const DATA: &[u8] = b"trusted.overlay.opaque\0"; + const DATA_SIZE: u32 = DATA.len() as u32; + if size < DATA_SIZE { + reply.size(DATA_SIZE); + } else { + reply.data(DATA); + } + } }