X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/2f83fcd45b4b23db2bb5bb4afbe1e863ebd77ec6..0542eb85c46bf04c4139d6a976d49860f5f7d5e6:/lib/mount/fs.go diff --git a/lib/mount/fs.go b/lib/mount/fs.go index 3c2e628d01..70d02f8134 100644 --- a/lib/mount/fs.go +++ b/lib/mount/fs.go @@ -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 {