File tree Expand file tree Collapse file tree 2 files changed +9
-2
lines changed
internal/filesystem/cgofuse Expand file tree Collapse file tree 2 files changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -156,7 +156,7 @@ func (gw *goWrapper) Unlink(path string) errNo {
156
156
157
157
func (gw * goWrapper ) Symlink (target , newpath string ) errNo {
158
158
defer gw .systemLock .CreateOrDelete (newpath )()
159
- if linker , ok := gw .FS .(filesystem.SymlinkFS ); ok {
159
+ if linker , ok := gw .FS .(filesystem.LinkMaker ); ok {
160
160
goTarget , goNewPath , err := fuseToGoPair (target , newpath )
161
161
if err != nil {
162
162
gw .logError (newpath + "->" + target , err )
@@ -179,7 +179,7 @@ func (gw *goWrapper) Readlink(path string) (errNo, string) {
179
179
case "" :
180
180
return - fuse .ENOENT , ""
181
181
default :
182
- if extractor , ok := gw .FS .(filesystem.SymlinkFS ); ok {
182
+ if extractor , ok := gw .FS .(filesystem.LinkReader ); ok {
183
183
goPath , err := fuseToGo (path )
184
184
if err != nil {
185
185
gw .logError (path , err )
Original file line number Diff line number Diff line change 1
1
package cgofuse
2
2
3
3
import (
4
+ "errors"
4
5
"io/fs"
5
6
7
+ "github.com/djdv/go-filesystem-utils/internal/filesystem"
6
8
"github.com/winfsp/cgofuse/fuse"
7
9
)
8
10
@@ -56,6 +58,11 @@ func (gw *goWrapper) infoFromPath(path string) (fs.FileInfo, error) {
56
58
if err != nil {
57
59
return nil , err
58
60
}
61
+ if stat , err := filesystem .Lstat (gw .FS , goPath ); err == nil {
62
+ return stat , nil
63
+ } else if ! errors .Is (err , errors .ErrUnsupported ) {
64
+ return nil , err
65
+ }
59
66
return fs .Stat (gw .FS , goPath )
60
67
}
61
68
You can’t perform that action at this time.
0 commit comments