From 91f21ddc47b2614f379976c690fa5de574319e84 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Mon, 6 Apr 2020 16:51:18 -0700 Subject: [PATCH] fix: ignore lost+found properly while reading disks (#9278) Fixes #9277 --- cmd/format-xl.go | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/cmd/format-xl.go b/cmd/format-xl.go index ae52fd3ac..421d8a82b 100644 --- a/cmd/format-xl.go +++ b/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.