aboutsummaryrefslogtreecommitdiff
path: root/weed/filesys/file.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-10-29 16:32:45 -0700
committerChris Lu <chris.lu@gmail.com>2020-10-29 16:32:45 -0700
commit0b68b68ec4a3f967f56a10e3d156e18139e771c4 (patch)
treef828103f00951e0642e4e8914235144399c2c510 /weed/filesys/file.go
parent47047516d61614fddce7163c1bca2e6e5e83f01f (diff)
downloadseaweedfs-0b68b68ec4a3f967f56a10e3d156e18139e771c4.tar.xz
seaweedfs-0b68b68ec4a3f967f56a10e3d156e18139e771c4.zip
reload entry only when it is a hard link
fix https://github.com/chrislusf/seaweedfs/issues/1581
Diffstat (limited to 'weed/filesys/file.go')
-rw-r--r--weed/filesys/file.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/weed/filesys/file.go b/weed/filesys/file.go
index 7aa1016d7..fb7b83cbe 100644
--- a/weed/filesys/file.go
+++ b/weed/filesys/file.go
@@ -253,9 +253,15 @@ func (file *File) Forget() {
}
func (file *File) maybeLoadEntry(ctx context.Context) error {
- if (file.entry != nil && len(file.entry.HardLinkId) != 0) || file.isOpen > 0 {
+ if file.isOpen > 0 {
return nil
}
+ if file.entry != nil {
+ if len(file.entry.HardLinkId) == 0 {
+ // only always reload hard link
+ return nil
+ }
+ }
entry, err := file.wfs.maybeLoadEntry(file.dir.FullPath(), file.Name)
if err != nil {
glog.V(3).Infof("maybeLoadEntry file %s/%s: %v", file.dir.FullPath(), file.Name, err)
@@ -263,6 +269,8 @@ func (file *File) maybeLoadEntry(ctx context.Context) error {
}
if entry != nil {
file.setEntry(entry)
+ } else {
+ glog.Warningf("maybeLoadEntry not found entry %s/%s: %v", file.dir.FullPath(), file.Name, err)
}
return nil
}