From c1a3e363a61dfead5006d50142c151b3c58f6849 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Tue, 13 Mar 2018 12:31:46 +0000 Subject: [PATCH] mount: return ENOSYS rather than EIO on attempted link This fixes FileZilla accessing an rclone mount served over sftp. See: https://forum.rclone.org/t/moving-files-on-rclone-mount-with-filezilla/5029 --- cmd/mount/dir.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cmd/mount/dir.go b/cmd/mount/dir.go index 939935678..3af77e069 100644 --- a/cmd/mount/dir.go +++ b/cmd/mount/dir.go @@ -183,3 +183,13 @@ func (d *Dir) Fsync(ctx context.Context, req *fuse.FsyncRequest) (err error) { } return nil } + +// Check interface satisfied +var _ fusefs.NodeLinker = (*Dir)(nil) + +// Link creates a new directory entry in the receiver based on an +// existing Node. Receiver must be a directory. +func (d *Dir) Link(ctx context.Context, req *fuse.LinkRequest, old fusefs.Node) (new fusefs.Node, err error) { + defer log.Trace(d, "req=%v, old=%v", req, old)("new=%v, err=%v", &new, &err) + return nil, fuse.ENOSYS +}