fix: handle a crash when AskDisks is set to -1 (#10777)

This commit is contained in:
Harshavardhana
2020-10-29 09:25:43 -07:00
committed by GitHub
parent e0655e24f2
commit 4bf90ca67f
4 changed files with 13 additions and 13 deletions

View File

@@ -542,17 +542,9 @@ func (er *erasureObjects) listPath(ctx context.Context, o listPathOptions) (entr
// We need to ask disks.
disks := er.getOnlineDisks()
var askDisks = o.AskDisks
switch askDisks {
// 50% or at least 3.
case -1:
o.AskDisks = getReadQuorum(len(er.getDisks()))
if o.AskDisks < 3 {
o.AskDisks = 3
}
// Default is 3 disks.
case 0:
askDisks = 3
askDisks := o.AskDisks
if askDisks == -1 {
askDisks = getReadQuorum(er.SetDriveCount())
}
if len(disks) < askDisks {
@@ -565,10 +557,11 @@ func (er *erasureObjects) listPath(ctx context.Context, o listPathOptions) (entr
return
}
// Select askDisks random disks, 3 is ok.
// Select askDisks random disks.
if len(disks) > askDisks {
disks = disks[:askDisks]
}
var readers = make([]*metacacheReader, askDisks)
for i := range disks {
r, w := io.Pipe()