Browse Source

reload entry only when it is a hard link

fix https://github.com/chrislusf/seaweedfs/issues/1581
pull/1584/head
Chris Lu 4 years ago
parent
commit
0b68b68ec4
  1. 10
      weed/filesys/file.go

10
weed/filesys/file.go

@ -253,9 +253,15 @@ func (file *File) Forget() {
} }
func (file *File) maybeLoadEntry(ctx context.Context) error { 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 return nil
} }
}
entry, err := file.wfs.maybeLoadEntry(file.dir.FullPath(), file.Name) entry, err := file.wfs.maybeLoadEntry(file.dir.FullPath(), file.Name)
if err != nil { if err != nil {
glog.V(3).Infof("maybeLoadEntry file %s/%s: %v", file.dir.FullPath(), file.Name, err) 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 { if entry != nil {
file.setEntry(entry) file.setEntry(entry)
} else {
glog.Warningf("maybeLoadEntry not found entry %s/%s: %v", file.dir.FullPath(), file.Name, err)
} }
return nil return nil
} }

Loading…
Cancel
Save