aboutsummaryrefslogtreecommitdiff
path: root/weed/filesys/dir.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-08-15 17:01:42 -0700
committerChris Lu <chris.lu@gmail.com>2020-08-15 17:01:42 -0700
commita22ee3059687237dfe4d645313a3907cd5f13fcd (patch)
treeed081b2a2a06d06551f7790924f9610d6f2a52f2 /weed/filesys/dir.go
parent0d60e678166b59d59d32af31bfefdafe92581823 (diff)
downloadseaweedfs-a22ee3059687237dfe4d645313a3907cd5f13fcd.tar.xz
seaweedfs-a22ee3059687237dfe4d645313a3907cd5f13fcd.zip
fix nil
Diffstat (limited to 'weed/filesys/dir.go')
-rw-r--r--weed/filesys/dir.go9
1 files changed, 6 insertions, 3 deletions
diff --git a/weed/filesys/dir.go b/weed/filesys/dir.go
index 50ca6df5d..7d099c395 100644
--- a/weed/filesys/dir.go
+++ b/weed/filesys/dir.go
@@ -101,7 +101,7 @@ func (dir *Dir) Fsync(ctx context.Context, req *fuse.FsyncRequest) error {
}
func (dir *Dir) newFile(name string, entry *filer_pb.Entry) fs.Node {
- return dir.wfs.fsNodeCache.EnsureFsNode(util.NewFullPath(dir.FullPath(), name), func() fs.Node {
+ f := dir.wfs.fsNodeCache.EnsureFsNode(util.NewFullPath(dir.FullPath(), name), func() fs.Node {
return &File{
Name: name,
dir: dir,
@@ -110,14 +110,17 @@ func (dir *Dir) newFile(name string, entry *filer_pb.Entry) fs.Node {
entryViewCache: nil,
}
})
+ f.(*File).dir = dir // in case dir node was created later
+ return f
}
func (dir *Dir) newDirectory(fullpath util.FullPath, entry *filer_pb.Entry) fs.Node {
- return dir.wfs.fsNodeCache.EnsureFsNode(fullpath, func() fs.Node {
+ d := dir.wfs.fsNodeCache.EnsureFsNode(fullpath, func() fs.Node {
return &Dir{name: entry.Name, wfs: dir.wfs, entry: entry, parent: dir}
})
-
+ d.(*Dir).parent = dir // in case dir node was created later
+ return d
}
func (dir *Dir) Create(ctx context.Context, req *fuse.CreateRequest,