diff options
| author | chrislu <chris.lu@gmail.com> | 2024-08-08 08:18:54 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2024-08-08 08:18:54 -0700 |
| commit | 9ca30e52d59fe6942435d55b84632e3b9ddda27e (patch) | |
| tree | 6152e21aef5b9a0477f163deb9cd8f4d32f8ade3 /weed/mount | |
| parent | 2074e7db67e7c24d51a951689aab1c260e823127 (diff) | |
| download | seaweedfs-9ca30e52d59fe6942435d55b84632e3b9ddda27e.tar.xz seaweedfs-9ca30e52d59fe6942435d55b84632e3b9ddda27e.zip | |
fuse mount handles ttl entries
fix https://github.com/seaweedfs/seaweedfs/issues/5527
Diffstat (limited to 'weed/mount')
| -rw-r--r-- | weed/mount/meta_cache/meta_cache.go | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/weed/mount/meta_cache/meta_cache.go b/weed/mount/meta_cache/meta_cache.go index 46a76365c..8a571d9e6 100644 --- a/weed/mount/meta_cache/meta_cache.go +++ b/weed/mount/meta_cache/meta_cache.go @@ -4,6 +4,7 @@ import ( "context" "os" "sync" + "time" "github.com/seaweedfs/seaweedfs/weed/filer" "github.com/seaweedfs/seaweedfs/weed/filer/leveldb" @@ -118,6 +119,9 @@ func (mc *MetaCache) FindEntry(ctx context.Context, fp util.FullPath) (entry *fi if err != nil { return nil, err } + if entry.TtlSec > 0 && entry.Crtime.Add(time.Duration(entry.TtlSec)).Before(time.Now()) { + return nil, filer_pb.ErrNotFound + } mc.mapIdFromFilerToLocal(entry) return } @@ -143,6 +147,9 @@ func (mc *MetaCache) ListDirectoryEntries(ctx context.Context, dirPath util.Full } _, err := mc.localStore.ListDirectoryEntries(ctx, dirPath, startFileName, includeStartFile, limit, func(entry *filer.Entry) bool { + if entry.TtlSec > 0 && entry.Crtime.Add(time.Duration(entry.TtlSec)).Before(time.Now()) { + return true + } mc.mapIdFromFilerToLocal(entry) return eachEntryFunc(entry) }) |
