From 55bab1b456c3c13a8009a11730e678ca0c48dfb0 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Fri, 15 Mar 2019 17:20:24 -0700 Subject: add context.Context --- weed/filesys/dir_link.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'weed/filesys/dir_link.go') diff --git a/weed/filesys/dir_link.go b/weed/filesys/dir_link.go index 3b3735369..4f631bc88 100644 --- a/weed/filesys/dir_link.go +++ b/weed/filesys/dir_link.go @@ -35,7 +35,7 @@ func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, }, } - err := dir.wfs.withFilerClient(func(client filer_pb.SeaweedFilerClient) error { + err := dir.wfs.withFilerClient(ctx, func(client filer_pb.SeaweedFilerClient) error { if _, err := client.CreateEntry(ctx, request); err != nil { glog.V(0).Infof("symlink %s/%s: %v", dir.Path, req.NewName, err) return fuse.EIO -- cgit v1.2.3 From b30c14b6314c96e0cb0c110e2aa1fc206857a066 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Fri, 3 May 2019 00:24:35 -0700 Subject: webdav: can read now --- weed/filesys/dir_link.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'weed/filesys/dir_link.go') diff --git a/weed/filesys/dir_link.go b/weed/filesys/dir_link.go index 4f631bc88..92cf04d58 100644 --- a/weed/filesys/dir_link.go +++ b/weed/filesys/dir_link.go @@ -35,7 +35,7 @@ func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, }, } - err := dir.wfs.withFilerClient(ctx, func(client filer_pb.SeaweedFilerClient) error { + err := dir.wfs.WithFilerClient(ctx, func(client filer_pb.SeaweedFilerClient) error { if _, err := client.CreateEntry(ctx, request); err != nil { glog.V(0).Infof("symlink %s/%s: %v", dir.Path, req.NewName, err) return fuse.EIO -- cgit v1.2.3 From 5956dfd08d690ee67bcd4a7f5730785f7a6df201 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Wed, 24 Jul 2019 00:03:05 -0700 Subject: mount: add umask option related to https://github.com/chrislusf/seaweedfs/issues/978 --- weed/filesys/dir_link.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'weed/filesys/dir_link.go') diff --git a/weed/filesys/dir_link.go b/weed/filesys/dir_link.go index 92cf04d58..94e443649 100644 --- a/weed/filesys/dir_link.go +++ b/weed/filesys/dir_link.go @@ -27,7 +27,7 @@ func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, Attributes: &filer_pb.FuseAttributes{ Mtime: time.Now().Unix(), Crtime: time.Now().Unix(), - FileMode: uint32(os.FileMode(0755) | os.ModeSymlink), + FileMode: uint32((os.FileMode(0777) | os.ModeSymlink) &^ dir.wfs.option.Umask), Uid: req.Uid, Gid: req.Gid, SymlinkTarget: req.Target, -- cgit v1.2.3 From 33b4b1868b9da23d2f80c2352ddf6fdfa068bc42 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sun, 15 Dec 2019 21:07:01 -0800 Subject: mount: support extended attributes --- weed/filesys/dir_link.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'weed/filesys/dir_link.go') diff --git a/weed/filesys/dir_link.go b/weed/filesys/dir_link.go index 94e443649..8e60872d3 100644 --- a/weed/filesys/dir_link.go +++ b/weed/filesys/dir_link.go @@ -51,7 +51,7 @@ func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, func (file *File) Readlink(ctx context.Context, req *fuse.ReadlinkRequest) (string, error) { - if err := file.maybeLoadAttributes(ctx); err != nil { + if err := file.maybeLoadEntry(ctx); err != nil { return "", err } -- cgit v1.2.3 From c48fc8b4de5922c44d22da306699f789353ecdd4 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sat, 25 Jan 2020 09:17:19 -0800 Subject: grpc send error via response instead of grpc error --- weed/filesys/dir_link.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'weed/filesys/dir_link.go') diff --git a/weed/filesys/dir_link.go b/weed/filesys/dir_link.go index 8e60872d3..13be62670 100644 --- a/weed/filesys/dir_link.go +++ b/weed/filesys/dir_link.go @@ -36,7 +36,7 @@ func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, } err := dir.wfs.WithFilerClient(ctx, func(client filer_pb.SeaweedFilerClient) error { - if _, err := client.CreateEntry(ctx, request); err != nil { + if err := filer_pb.CreateEntry(ctx, client, request); err != nil { glog.V(0).Infof("symlink %s/%s: %v", dir.Path, req.NewName, err) return fuse.EIO } -- cgit v1.2.3 From 72a64a5cf8c2a5adfe59665a746e013ca948e681 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sun, 26 Jan 2020 14:42:11 -0800 Subject: use the same context object in order to retry --- weed/filesys/dir_link.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'weed/filesys/dir_link.go') diff --git a/weed/filesys/dir_link.go b/weed/filesys/dir_link.go index 13be62670..8b7ec7e89 100644 --- a/weed/filesys/dir_link.go +++ b/weed/filesys/dir_link.go @@ -35,7 +35,7 @@ func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, }, } - err := dir.wfs.WithFilerClient(ctx, func(client filer_pb.SeaweedFilerClient) error { + err := dir.wfs.WithFilerClient(ctx, func(ctx context.Context, client filer_pb.SeaweedFilerClient) error { if err := filer_pb.CreateEntry(ctx, client, request); err != nil { glog.V(0).Infof("symlink %s/%s: %v", dir.Path, req.NewName, err) return fuse.EIO -- cgit v1.2.3 From 892e726eb9c2427634c46f8ae9b7bcf0b6d1b082 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Tue, 25 Feb 2020 21:50:12 -0800 Subject: avoid reusing context object fix https://github.com/chrislusf/seaweedfs/issues/1182 --- weed/filesys/dir_link.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'weed/filesys/dir_link.go') diff --git a/weed/filesys/dir_link.go b/weed/filesys/dir_link.go index 8b7ec7e89..61ed04c26 100644 --- a/weed/filesys/dir_link.go +++ b/weed/filesys/dir_link.go @@ -35,8 +35,8 @@ func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, }, } - err := dir.wfs.WithFilerClient(ctx, func(ctx context.Context, client filer_pb.SeaweedFilerClient) error { - if err := filer_pb.CreateEntry(ctx, client, request); err != nil { + err := dir.wfs.WithFilerClient(func(client filer_pb.SeaweedFilerClient) error { + if err := filer_pb.CreateEntry(client, request); err != nil { glog.V(0).Infof("symlink %s/%s: %v", dir.Path, req.NewName, err) return fuse.EIO } -- cgit v1.2.3 From 7f0d87b2065ffb5e7be1bd0591416b9649839c9e Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Thu, 26 Mar 2020 00:08:14 -0700 Subject: tree structured fs cache FsCache for FsNode, wrapping fs.Node --- weed/filesys/dir_link.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'weed/filesys/dir_link.go') diff --git a/weed/filesys/dir_link.go b/weed/filesys/dir_link.go index 61ed04c26..3c415c3a6 100644 --- a/weed/filesys/dir_link.go +++ b/weed/filesys/dir_link.go @@ -17,10 +17,10 @@ var _ = fs.NodeReadlinker(&File{}) func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, error) { - glog.V(3).Infof("Symlink: %v/%v to %v", dir.Path, req.NewName, req.Target) + glog.V(3).Infof("Symlink: %v/%v to %v", dir.FullPath(), req.NewName, req.Target) request := &filer_pb.CreateEntryRequest{ - Directory: dir.Path, + Directory: dir.FullPath(), Entry: &filer_pb.Entry{ Name: req.NewName, IsDirectory: false, @@ -37,7 +37,7 @@ func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, err := dir.wfs.WithFilerClient(func(client filer_pb.SeaweedFilerClient) error { if err := filer_pb.CreateEntry(client, request); err != nil { - glog.V(0).Infof("symlink %s/%s: %v", dir.Path, req.NewName, err) + glog.V(0).Infof("symlink %s/%s: %v", dir.FullPath(), req.NewName, err) return fuse.EIO } return nil @@ -59,7 +59,7 @@ func (file *File) Readlink(ctx context.Context, req *fuse.ReadlinkRequest) (stri return "", fuse.Errno(syscall.EINVAL) } - glog.V(3).Infof("Readlink: %v/%v => %v", file.dir.Path, file.Name, file.entry.Attributes.SymlinkTarget) + glog.V(3).Infof("Readlink: %v/%v => %v", file.dir.FullPath(), file.Name, file.entry.Attributes.SymlinkTarget) return file.entry.Attributes.SymlinkTarget, nil -- cgit v1.2.3 From 5d0e1d8d741b93c8f77b6ff709b5079580c7dda6 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Wed, 22 Apr 2020 15:40:47 -0700 Subject: also writes to local meta cache before waiting for subscribed meta events --- weed/filesys/dir_link.go | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'weed/filesys/dir_link.go') diff --git a/weed/filesys/dir_link.go b/weed/filesys/dir_link.go index 3c415c3a6..d1858e99b 100644 --- a/weed/filesys/dir_link.go +++ b/weed/filesys/dir_link.go @@ -6,6 +6,7 @@ import ( "syscall" "time" + "github.com/chrislusf/seaweedfs/weed/filer2" "github.com/chrislusf/seaweedfs/weed/glog" "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" "github.com/seaweedfs/fuse" @@ -40,6 +41,11 @@ func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, glog.V(0).Infof("symlink %s/%s: %v", dir.FullPath(), req.NewName, err) return fuse.EIO } + + if dir.wfs.option.AsyncMetaDataCaching { + dir.wfs.metaCache.InsertEntry(context.Background(), filer2.FromPbEntry(request.Directory, request.Entry)) + } + return nil }) -- cgit v1.2.3 From 628b27ef3b4cf8c1c894430e0d40b0bc1de8ba96 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Thu, 11 Jun 2020 01:50:00 -0700 Subject: purge old cache implementation --- weed/filesys/dir_link.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'weed/filesys/dir_link.go') diff --git a/weed/filesys/dir_link.go b/weed/filesys/dir_link.go index d1858e99b..4990e743c 100644 --- a/weed/filesys/dir_link.go +++ b/weed/filesys/dir_link.go @@ -42,9 +42,7 @@ func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, return fuse.EIO } - if dir.wfs.option.AsyncMetaDataCaching { - dir.wfs.metaCache.InsertEntry(context.Background(), filer2.FromPbEntry(request.Directory, request.Entry)) - } + dir.wfs.metaCache.InsertEntry(context.Background(), filer2.FromPbEntry(request.Directory, request.Entry)) return nil }) -- cgit v1.2.3 From 1bb8cae65d499dc48cc2d7db2dc5692482f3f305 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sun, 28 Jun 2020 10:14:17 -0700 Subject: reverting and working --- weed/filesys/dir_link.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'weed/filesys/dir_link.go') diff --git a/weed/filesys/dir_link.go b/weed/filesys/dir_link.go index 4990e743c..d1858e99b 100644 --- a/weed/filesys/dir_link.go +++ b/weed/filesys/dir_link.go @@ -42,7 +42,9 @@ func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, return fuse.EIO } - dir.wfs.metaCache.InsertEntry(context.Background(), filer2.FromPbEntry(request.Directory, request.Entry)) + if dir.wfs.option.AsyncMetaDataCaching { + dir.wfs.metaCache.InsertEntry(context.Background(), filer2.FromPbEntry(request.Directory, request.Entry)) + } return nil }) -- cgit v1.2.3 From 9033a7d3692572fc10ddf47d992a91271d693f52 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sun, 28 Jun 2020 10:18:32 -0700 Subject: removed async option --- weed/filesys/dir_link.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'weed/filesys/dir_link.go') diff --git a/weed/filesys/dir_link.go b/weed/filesys/dir_link.go index d1858e99b..4990e743c 100644 --- a/weed/filesys/dir_link.go +++ b/weed/filesys/dir_link.go @@ -42,9 +42,7 @@ func (dir *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, return fuse.EIO } - if dir.wfs.option.AsyncMetaDataCaching { - dir.wfs.metaCache.InsertEntry(context.Background(), filer2.FromPbEntry(request.Directory, request.Entry)) - } + dir.wfs.metaCache.InsertEntry(context.Background(), filer2.FromPbEntry(request.Directory, request.Entry)) return nil }) -- cgit v1.2.3