heal: Fix passing healing opts (#9756)

Manual healing (as background healing) creates a heal task with a
possiblity to override healing options, such as deep or normal mode.

Use a pointer type in heal opts so nil would mean use the default
healing options.
master
Anis Elleuch 5 years ago committed by GitHub
parent f0358acb32
commit 3aad09be28
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      cmd/admin-heal-ops.go
  2. 2
      cmd/global-heal.go

@ -296,8 +296,8 @@ func (ahs *allHealState) PopHealStatusJSON(path string,
// healSource denotes single entity and heal option.
type healSource struct {
path string // entity path (format, buckets, objects) to heal
opts madmin.HealOpts // optional heal option overrides default setting
path string // entity path (format, buckets, objects) to heal
opts *madmin.HealOpts // optional heal option overrides default setting
}
// healSequence - state for each heal sequence initiated on the
@ -622,8 +622,8 @@ func (h *healSequence) queueHealTask(source healSource, healType madmin.HealItem
opts: h.settings,
responseCh: h.respCh,
}
if !source.opts.Equal(h.settings) {
task.opts = source.opts
if source.opts != nil {
task.opts = *source.opts
}
globalBackgroundHealRoutine.queueHealTask(task)

@ -128,7 +128,7 @@ func deepHealObject(objectPath string) {
bgSeq.sourceCh <- healSource{
path: objectPath,
opts: madmin.HealOpts{ScanMode: madmin.HealDeepScan},
opts: &madmin.HealOpts{ScanMode: madmin.HealDeepScan},
}
}

Loading…
Cancel
Save