aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-02-11 22:54:10 -0800
committerChris Lu <chris.lu@gmail.com>2020-02-11 22:54:10 -0800
commit83836f4299ddc53eef79745602b9bc61ff52cf0d (patch)
treee6ef308f8a6865dc2926061018b5015263c9aa0c
parent2a6db0fd436a62afdadbb03d55e8acd51d67791a (diff)
downloadseaweedfs-83836f4299ddc53eef79745602b9bc61ff52cf0d.tar.xz
seaweedfs-83836f4299ddc53eef79745602b9bc61ff52cf0d.zip
filer: recursively batch delete file chunks
fix https://github.com/chrislusf/seaweedfs/issues/1197
-rw-r--r--weed/filer2/filer_delete_entry.go10
1 files changed, 5 insertions, 5 deletions
diff --git a/weed/filer2/filer_delete_entry.go b/weed/filer2/filer_delete_entry.go
index 75a09e7ef..ab7119042 100644
--- a/weed/filer2/filer_delete_entry.go
+++ b/weed/filer2/filer_delete_entry.go
@@ -63,13 +63,13 @@ 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)
+ chunks = append(chunks, dirChunks...)
+ } else {
+ chunks = append(chunks, sub.Chunks...)
}
if err != nil && !ignoreRecursiveError {
return nil, err
}
- if shouldDeleteChunks {
- chunks = append(chunks, dirChunks...)
- }
}
if len(entries) < PaginationSize {
@@ -79,7 +79,7 @@ func (f *Filer) doBatchDeleteFolderMetaAndData(ctx context.Context, entry *Entry
f.cacheDelDirectory(string(entry.FullPath))
- glog.V(3).Infof("deleting directory %v", 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)
@@ -91,7 +91,7 @@ func (f *Filer) doBatchDeleteFolderMetaAndData(ctx context.Context, entry *Entry
func (f *Filer) doDeleteEntryMetaAndData(ctx context.Context, entry *Entry, shouldDeleteChunks bool) (err error) {
- glog.V(3).Infof("deleting entry %v", entry.FullPath)
+ glog.V(3).Infof("deleting entry %v, delete chunks: %v", entry.FullPath, shouldDeleteChunks)
if storeDeletionErr := f.store.DeleteEntry(ctx, entry.FullPath); storeDeletionErr != nil {
return fmt.Errorf("filer store delete: %v", storeDeletionErr)