fix: preserve modTime for DeleteMarker on remote disks (#9905)

This commit is contained in:
Harshavardhana
2020-06-23 10:20:31 -07:00
committed by GitHub
parent b460b5967f
commit dee3cf2d7f
3 changed files with 24 additions and 8 deletions

View File

@@ -18,6 +18,7 @@ package cmd
import (
"bytes"
"errors"
"fmt"
"strings"
"time"
@@ -230,13 +231,17 @@ func (z *xlMetaV2) AddVersion(fi FileInfo) error {
if err != nil {
return err
}
z.Versions = append(z.Versions, xlMetaV2Version{
v := xlMetaV2Version{
Type: DeleteType,
DeleteMarker: &xlMetaV2DeleteMarker{
VersionID: uv,
ModTime: fi.ModTime.UnixNano(),
},
})
}
if !v.Valid() {
return errors.New("internal error: invalid version entry generated")
}
z.Versions = append(z.Versions, v)
return nil
}
@@ -305,6 +310,10 @@ func (z *xlMetaV2) AddVersion(fi FileInfo) error {
}
}
if !ventry.Valid() {
return errors.New("internal error: invalid version entry generated")
}
for i, version := range z.Versions {
if !version.Valid() {
return errFileCorrupt