diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-06-05 13:09:33 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-06-05 13:09:37 -0700 |
| commit | e6ba2f9c372f8f160003dac63d51b6dde0a512de (patch) | |
| tree | 1301bc441fa12b327c73085ae013219f298e2f39 | |
| parent | d7638b73b566f00ae1b3b05747592e4b0dd63d98 (diff) | |
| download | seaweedfs-e6ba2f9c372f8f160003dac63d51b6dde0a512de.tar.xz seaweedfs-e6ba2f9c372f8f160003dac63d51b6dde0a512de.zip | |
verbose but cleaner logic to invalidate fuse cache
| -rw-r--r-- | weed/filesys/meta_cache/meta_cache_subscribe.go | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/weed/filesys/meta_cache/meta_cache_subscribe.go b/weed/filesys/meta_cache/meta_cache_subscribe.go index 675ef4077..747ac3cb9 100644 --- a/weed/filesys/meta_cache/meta_cache_subscribe.go +++ b/weed/filesys/meta_cache/meta_cache_subscribe.go @@ -40,12 +40,21 @@ func SubscribeMetaEvents(mc *MetaCache, selfSignature int32, client filer_pb.Fil newEntry = filer.FromPbEntry(dir, message.NewEntry) } err := mc.AtomicUpdateEntryFromFiler(context.Background(), oldPath, newEntry) - if err == nil && message.OldEntry != nil { - oldKey := util.NewFullPath(resp.Directory, message.OldEntry.Name) - mc.invalidateFunc(oldKey) - if message.NewEntry != nil { - key := util.NewFullPath(dir, message.NewEntry.Name) - mc.invalidateFunc(key) + if err == nil { + if message.OldEntry != nil && message.NewEntry != nil { + if message.OldEntry.Name == message.NewEntry.Name { + // no need to invalidate + } else { + oldKey := util.NewFullPath(resp.Directory, message.OldEntry.Name) + mc.invalidateFunc(oldKey) + newKey := util.NewFullPath(dir, message.NewEntry.Name) + mc.invalidateFunc(newKey) + } + } else if message.OldEntry == nil && message.NewEntry != nil { + // no need to invaalidate + } else if message.OldEntry != nil && message.NewEntry == nil { + oldKey := util.NewFullPath(resp.Directory, message.OldEntry.Name) + mc.invalidateFunc(oldKey) } } |
