diff --git a/cmd/erasure-server-pool-decom.go b/cmd/erasure-server-pool-decom.go index 078b41a07..ac72f8244 100644 --- a/cmd/erasure-server-pool-decom.go +++ b/cmd/erasure-server-pool-decom.go @@ -1182,29 +1182,32 @@ func (z *erasureServerPools) checkAfterDecom(ctx context.Context, idx int) error return } + // `.usage-cache.bin` still exists, must be not readable ignore it. + if bi.Name == minioMetaBucket && strings.Contains(entry.name, dataUsageCacheName) { + // skipping bucket usage cache name, as its autogenerated. + return + } + fivs, err := entry.fileInfoVersions(bi.Name) if err != nil { return } - // We need a reversed order for decommissioning, - // to create the appropriate stack. - versionsSorter(fivs.Versions).reverse() + var ignored int for _, version := range fivs.Versions { // Apply lifecycle rules on the objects that are expired. if filterLifecycle(bi.Name, version.Name, version) { + ignored++ continue } - - // `.usage-cache.bin` still exists, must be not readable ignore it. - if bi.Name == minioMetaBucket && strings.Contains(version.Name, dataUsageCacheName) { - // skipping bucket usage cache name, as its autogenerated. + if version.Deleted { + ignored++ continue } - - versionsFound++ } + + versionsFound += len(fivs.Versions) - ignored }); err != nil { return err }