close channel upon error in Walk()'er (#9042)

master
Harshavardhana 4 years ago committed by GitHub
parent deb3911f5e
commit 6f66f1a910
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      cmd/object-api-common.go
  2. 2
      cmd/xl-sets.go
  3. 2
      cmd/xl-zones.go

@ -320,6 +320,8 @@ func listObjectsNonSlash(ctx context.Context, bucket, prefix, marker, delimiter
// then Walk() stops the walker.
func fsWalk(ctx context.Context, obj ObjectLayer, bucket, prefix string, listDir ListDirFunc, results chan<- ObjectInfo, getObjInfo func(context.Context, string, string) (ObjectInfo, error), getObjectInfoDirs ...func(context.Context, string, string) (ObjectInfo, error)) error {
if err := checkListObjsArgs(ctx, bucket, prefix, "", obj); err != nil {
// Upon error close the channel.
close(results)
return err
}

@ -1617,6 +1617,8 @@ func (s *xlSets) ListBucketsHeal(ctx context.Context) ([]BucketInfo, error) {
// then Walk() stops the walker.
func (s *xlSets) Walk(ctx context.Context, bucket, prefix string, results chan<- ObjectInfo) error {
if err := checkListObjsArgs(ctx, bucket, prefix, "", s); err != nil {
// Upon error close the channel.
close(results)
return err
}

@ -1291,6 +1291,8 @@ func (z *xlZones) HealBucket(ctx context.Context, bucket string, dryRun, remove
// then Walk() stops the walker.
func (z *xlZones) Walk(ctx context.Context, bucket, prefix string, results chan<- ObjectInfo) error {
if err := checkListObjsArgs(ctx, bucket, prefix, "", z); err != nil {
// Upon error close the channel.
close(results)
return err
}

Loading…
Cancel
Save