diff --git a/internal/fusefrontend_reverse/virtualconf.go b/internal/fusefrontend_reverse/virtualconf.go index 8620f6d..e8cc080 100644 --- a/internal/fusefrontend_reverse/virtualconf.go +++ b/internal/fusefrontend_reverse/virtualconf.go @@ -10,6 +10,7 @@ import ( ) var _ = (fs.NodeOpener)((*VirtualConfNode)(nil)) +var _ = (fs.NodeGetattrer)((*VirtualConfNode)(nil)) type VirtualConfNode struct { fs.Inode @@ -27,6 +28,17 @@ func (n *VirtualConfNode) Open(ctx context.Context, flags uint32) (fh fs.FileHan return } +func (n *VirtualConfNode) Getattr(ctx context.Context, fh fs.FileHandle, out *fuse.AttrOut) syscall.Errno { + var st syscall.Stat_t + err := syscall.Stat(n.path, &st) + if err != nil { + return fs.ToErrno(err) + } + out.FromStat(&st) + return 0 +} + + // Check that we have implemented the fs.File* interfaces var _ = (fs.FileReader)((*VirtualConfFile)(nil)) var _ = (fs.FileReleaser)((*VirtualConfFile)(nil))