diff options
Diffstat (limited to 'weed/filer/mongodb/mongodb_store.go')
| -rw-r--r-- | weed/filer/mongodb/mongodb_store.go | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/weed/filer/mongodb/mongodb_store.go b/weed/filer/mongodb/mongodb_store.go index 21463dc32..f87878f08 100644 --- a/weed/filer/mongodb/mongodb_store.go +++ b/weed/filer/mongodb/mongodb_store.go @@ -319,14 +319,22 @@ func (store *MongodbStore) ListDirectoryPrefixedEntries(ctx context.Context, dir break } - if !eachEntryFunc(entry) { + resEachEntryFunc, resEachEntryFuncErr := eachEntryFunc(entry) + if resEachEntryFuncErr != nil { + err = fmt.Errorf("failed to process eachEntryFunc: %w", resEachEntryFuncErr) break } + if !resEachEntryFunc { + break + } } - if err := cur.Close(ctx); err != nil { - glog.V(0).InfofCtx(ctx, "list iterator close: %v", err) + if errClose := cur.Close(ctx); errClose != nil { + glog.V(0).InfofCtx(ctx, "list iterator close: %v", errClose) + if err == nil { + return lastFileName, errClose + } } return lastFileName, err |
