From 3f1752e9614bc7b3c562e62f5a65103867e02dc4 Mon Sep 17 00:00:00 2001 From: ston1th Date: Sat, 8 Oct 2022 14:03:12 +0200 Subject: [PATCH] fixed quota delete --- pkg/fs/metadata.go | 14 ++++++++------ pkg/fs/quota.go | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/pkg/fs/metadata.go b/pkg/fs/metadata.go index 30103aa..b894caf 100644 --- a/pkg/fs/metadata.go +++ b/pkg/fs/metadata.go @@ -131,13 +131,13 @@ func NewMetadataHandler(ctx context.Context, fs *FS, file, dst string, log logr. return } -func (mh *MetadataHandler) DeleteOldest() (s int64) { +func (mh *MetadataHandler) DeleteOldest() (free int64) { mh.mu.Lock() defer mh.mu.Unlock() atime := int64(math.MaxInt64) var m *Metadata for _, v := range mh.md { - if v.Atime != 0 && v.f != nil && v.Atime < atime { + if v.Atime != 0 && v.Atime < atime { atime = v.Atime m = v } @@ -145,16 +145,16 @@ func (mh *MetadataHandler) DeleteOldest() (s int64) { if m != nil { log := mh.log.WithValues("file", m.name) log.Info("deleting oldest file") - cs := m.Size + s := m.Size if !m.FullyCached() { - cs = m.ChunkSize() + s = m.ChunkSize() } err := m.Delete() if err != nil { log.Error(err, "error deleting oldest file") return } - s = cs + free = s } return } @@ -236,13 +236,15 @@ func (mh *MetadataHandler) init() { } func (mh *MetadataHandler) flusher(ctx context.Context) { + t := time.NewTicker(time.Minute * 5) for { select { case <-ctx.Done(): + t.Stop() mh.close() close(mh.done) return - case <-time.After(time.Minute * 5): + case <-t.C: } mh.cleanupEmptyDirs() mh.flush() diff --git a/pkg/fs/quota.go b/pkg/fs/quota.go index 8b68e01..a7606c3 100644 --- a/pkg/fs/quota.go +++ b/pkg/fs/quota.go @@ -42,8 +42,8 @@ func (q *Quota) cleanup() { } q.log.Info("quota usage", "current", atomic.LoadInt64(&q.cur), "max", q.max) defer q.mu.Unlock() - size := q.fs.mh.DeleteOldest() - atomic.AddInt64(&q.cur, -size) + free := q.fs.mh.DeleteOldest() + atomic.AddInt64(&q.cur, -free) } func (q *Quota) Add(n int) {