fix: ignore lost+found properly while reading disks (#9278)

Fixes #9277
master
Harshavardhana 4 years ago committed by GitHub
parent 43a3778b45
commit 91f21ddc47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 28
      cmd/format-xl.go

@ -378,21 +378,22 @@ func saveFormatXL(disk StorageAPI, format interface{}, diskID string) error {
return nil
}
var ignoredHiddenDirectories = []string{
minioMetaBucket,
".snapshot",
"lost+found",
"$RECYCLE.BIN",
"System Volume Information",
var ignoredHiddenDirectories = map[string]struct{}{
minioMetaBucket: {},
".snapshot": {},
"lost+found": {},
"$RECYCLE.BIN": {},
"System Volume Information": {},
}
func isIgnoreHiddenDirectories(dir string) bool {
for _, ignDir := range ignoredHiddenDirectories {
if dir == ignDir {
return true
func isHiddenDirectories(vols ...VolInfo) bool {
for _, vol := range vols {
if _, ok := ignoredHiddenDirectories[vol.Name]; ok {
continue
}
return false
}
return false
return true
}
// loadFormatXL - loads format.json from disk.
@ -407,9 +408,8 @@ func loadFormatXL(disk StorageAPI) (format *formatXLV3, err error) {
if err != nil {
return nil, err
}
if len(vols) > 1 || (len(vols) == 1 && !isIgnoreHiddenDirectories(vols[0].Name)) {
// 'format.json' not found, but we
// found user data.
if !isHiddenDirectories(vols...) {
// 'format.json' not found, but we found user data, reject such disks.
return nil, errCorruptedFormat
}
// No other data found, its a fresh disk.

Loading…
Cancel
Save