aboutsummaryrefslogtreecommitdiff
path: root/weed
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2024-08-08 08:18:54 -0700
committerchrislu <chris.lu@gmail.com>2024-08-08 08:18:54 -0700
commit9ca30e52d59fe6942435d55b84632e3b9ddda27e (patch)
tree6152e21aef5b9a0477f163deb9cd8f4d32f8ade3 /weed
parent2074e7db67e7c24d51a951689aab1c260e823127 (diff)
downloadseaweedfs-9ca30e52d59fe6942435d55b84632e3b9ddda27e.tar.xz
seaweedfs-9ca30e52d59fe6942435d55b84632e3b9ddda27e.zip
fuse mount handles ttl entries
fix https://github.com/seaweedfs/seaweedfs/issues/5527
Diffstat (limited to 'weed')
-rw-r--r--weed/mount/meta_cache/meta_cache.go7
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)
})