From f71b855db580755d700cbbaf97a3a10737e8fd57 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sun, 5 Apr 2020 15:03:25 -0700 Subject: [PATCH] adjust caching and notification for recursive directory deletion --- weed/filer2/filer_delete_entry.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/weed/filer2/filer_delete_entry.go b/weed/filer2/filer_delete_entry.go index e90c97c12..2fb53c579 100644 --- a/weed/filer2/filer_delete_entry.go +++ b/weed/filer2/filer_delete_entry.go @@ -73,6 +73,8 @@ func (f *Filer) doBatchDeleteFolderMetaAndData(ctx context.Context, entry *Entry var dirChunks []*filer_pb.FileChunk if sub.IsDirectory() { dirChunks, err = f.doBatchDeleteFolderMetaAndData(ctx, sub, isRecursive, ignoreRecursiveError, shouldDeleteChunks) + f.cacheDelDirectory(string(sub.FullPath)) + f.NotifyUpdateEvent(sub, nil, shouldDeleteChunks) chunks = append(chunks, dirChunks...) } else { chunks = append(chunks, sub.Chunks...) @@ -87,14 +89,11 @@ func (f *Filer) doBatchDeleteFolderMetaAndData(ctx context.Context, entry *Entry } } - f.cacheDelDirectory(string(entry.FullPath)) - glog.V(3).Infof("deleting directory %v delete %d chunks: %v", entry.FullPath, len(chunks), shouldDeleteChunks) if storeDeletionErr := f.store.DeleteFolderChildren(ctx, entry.FullPath); storeDeletionErr != nil { return nil, fmt.Errorf("filer store delete: %v", storeDeletionErr) } - f.NotifyUpdateEvent(entry, nil, shouldDeleteChunks) return chunks, nil } @@ -106,6 +105,9 @@ func (f *Filer) doDeleteEntryMetaAndData(ctx context.Context, entry *Entry, shou if storeDeletionErr := f.store.DeleteEntry(ctx, entry.FullPath); storeDeletionErr != nil { return fmt.Errorf("filer store delete: %v", storeDeletionErr) } + if entry.IsDirectory() { + f.cacheDelDirectory(string(entry.FullPath)) + } f.NotifyUpdateEvent(entry, nil, shouldDeleteChunks) return nil