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.
This commit is contained in:
Anis Elleuch 2020-06-02 17:07:16 +01:00 committed by GitHub
parent f0358acb32
commit 3aad09be28
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 5 deletions

View file

@ -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)

View file

@ -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},
}
}