mirror of
https://github.com/minio/minio.git
synced 2025-02-09 12:48:08 -05:00
fix: ignore lost+found properly while reading disks (#9278)
Fixes #9277
This commit is contained in:
parent
43a3778b45
commit
91f21ddc47
@ -378,22 +378,23 @@ func saveFormatXL(disk StorageAPI, format interface{}, diskID string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var ignoredHiddenDirectories = []string{
|
var ignoredHiddenDirectories = map[string]struct{}{
|
||||||
minioMetaBucket,
|
minioMetaBucket: {},
|
||||||
".snapshot",
|
".snapshot": {},
|
||||||
"lost+found",
|
"lost+found": {},
|
||||||
"$RECYCLE.BIN",
|
"$RECYCLE.BIN": {},
|
||||||
"System Volume Information",
|
"System Volume Information": {},
|
||||||
}
|
}
|
||||||
|
|
||||||
func isIgnoreHiddenDirectories(dir string) bool {
|
func isHiddenDirectories(vols ...VolInfo) bool {
|
||||||
for _, ignDir := range ignoredHiddenDirectories {
|
for _, vol := range vols {
|
||||||
if dir == ignDir {
|
if _, ok := ignoredHiddenDirectories[vol.Name]; ok {
|
||||||
return true
|
continue
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
// loadFormatXL - loads format.json from disk.
|
// loadFormatXL - loads format.json from disk.
|
||||||
func loadFormatXL(disk StorageAPI) (format *formatXLV3, err error) {
|
func loadFormatXL(disk StorageAPI) (format *formatXLV3, err error) {
|
||||||
@ -407,9 +408,8 @@ func loadFormatXL(disk StorageAPI) (format *formatXLV3, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if len(vols) > 1 || (len(vols) == 1 && !isIgnoreHiddenDirectories(vols[0].Name)) {
|
if !isHiddenDirectories(vols...) {
|
||||||
// 'format.json' not found, but we
|
// 'format.json' not found, but we found user data, reject such disks.
|
||||||
// found user data.
|
|
||||||
return nil, errCorruptedFormat
|
return nil, errCorruptedFormat
|
||||||
}
|
}
|
||||||
// No other data found, its a fresh disk.
|
// No other data found, its a fresh disk.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user