projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
21214: Implement filter groups in sitefs as symlinks to /by_id/.
[arvados.git]
/
lib
/
mount
/
fs.go
diff --git
a/lib/mount/fs.go
b/lib/mount/fs.go
index 3c2e628d0115e361f58150f589060ee14bc57f1b..70d02f8134c2ff3604909b49fc1c01ea26587f67 100644
(file)
--- 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
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
}
} 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 {
func (fs *keepFS) Write(path string, buf []byte, ofst int64, fh uint64) (n int) {
defer fs.debugPanics()
if fs.ReadOnly {