21214: Implement filter groups in sitefs as symlinks to /by_id/.
[arvados.git] / lib / mount / fs.go
index 3c2e628d0115e361f58150f589060ee14bc57f1b..70d02f8134c2ff3604909b49fc1c01ea26587f67 100644 (file)
@@ -274,6 +274,8 @@ func (fs *keepFS) fillStat(stat *fuse.Stat_t, fi os.FileInfo) {
        var m uint32
        if fi.IsDir() {
                m = m | fuse.S_IFDIR
+       } else if fi.Mod()&os.ModeSymlink != 0 {
+               m = m | fuse.S_IFLNK
        } else {
                m = m | fuse.S_IFREG
        }
@@ -296,6 +298,15 @@ func (fs *keepFS) fillStat(stat *fuse.Stat_t, fi os.FileInfo) {
        }
 }
 
+func (fs *keepFS) Readlink(path string) (n int, target string) {
+       defer fs.debugPanics()
+       target, err := fs.root.Readlink(path)
+       if err != nil {
+               return fs.errCode(err), ""
+       }
+       return 0, target
+}
+
 func (fs *keepFS) Write(path string, buf []byte, ofst int64, fh uint64) (n int) {
        defer fs.debugPanics()
        if fs.ReadOnly {