Add a 'free' version to track deletion of tiered object content (#12470)

This commit is contained in:
Krishnan Parthasarathi
2021-06-30 19:32:07 -07:00
committed by GitHub
parent dc6958b6a1
commit a1df230518
14 changed files with 549 additions and 68 deletions

View File

@@ -39,6 +39,23 @@ func (v versionsSorter) sort() {
}
func getFileInfoVersions(xlMetaBuf []byte, volume, path string) (FileInfoVersions, error) {
fivs, err := getAllFileInfoVersions(xlMetaBuf, volume, path)
if err != nil {
return fivs, err
}
n := 0
for _, fi := range fivs.Versions {
// Filter our tier object delete marker
if !fi.TierFreeVersion() {
fivs.Versions[n] = fi
n++
}
}
fivs.Versions = fivs.Versions[:n]
return fivs, nil
}
func getAllFileInfoVersions(xlMetaBuf []byte, volume, path string) (FileInfoVersions, error) {
if isXL2V1Format(xlMetaBuf) {
var xlMeta xlMetaV2
if err := xlMeta.Load(xlMetaBuf); err != nil {