From b5ebfd35b43f9377b3780be0b5b7ee192fc6e2bf Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Thu, 27 May 2021 10:11:50 -0700 Subject: [PATCH] fix: always prefer DataBlocks present in FileInfo (#12386) --- cmd/erasure-healing.go | 5 ++++- cmd/erasure-metadata.go | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/cmd/erasure-healing.go b/cmd/erasure-healing.go index e09d6dbbb..c0c3bb2d5 100644 --- a/cmd/erasure-healing.go +++ b/cmd/erasure-healing.go @@ -778,7 +778,10 @@ func (er erasureObjects) purgeObjectDangling(ctx context.Context, bucket, object if m.Erasure.ParityBlocks == 0 { parityBlocks = er.defaultParityCount } - dataBlocks := len(storageDisks) - parityBlocks + dataBlocks := m.Erasure.DataBlocks + if m.Erasure.DataBlocks == 0 { + dataBlocks = len(storageDisks) - parityBlocks + } writeQuorum := dataBlocks if dataBlocks == parityBlocks { writeQuorum++ diff --git a/cmd/erasure-metadata.go b/cmd/erasure-metadata.go index ce6b9960a..099da0e73 100644 --- a/cmd/erasure-metadata.go +++ b/cmd/erasure-metadata.go @@ -344,7 +344,11 @@ func objectQuorumFromMeta(ctx context.Context, partsMetaData []FileInfo, errs [] parityBlocks = defaultParityCount } - dataBlocks := len(partsMetaData) - parityBlocks + dataBlocks := latestFileInfo.Erasure.DataBlocks + if dataBlocks == 0 { + dataBlocks = len(partsMetaData) - parityBlocks + } + writeQuorum := dataBlocks if dataBlocks == parityBlocks { writeQuorum++