From d2f240c791c757bbad2b4c22fc4eee87912f8d77 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Fri, 2 Nov 2018 11:31:55 -0700 Subject: [PATCH] Ignore windows hidden folders (#6735) On Windows erasure coding setup if ``` ~ minio server V:\ W:\ X:\ Z:\ ``` is not possible due to NTFS creating couple of hidden folders, this PR allows minio to use the entire drive. --- cmd/format-xl.go | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/cmd/format-xl.go b/cmd/format-xl.go index e4d6c60e7..68da846ed 100644 --- a/cmd/format-xl.go +++ b/cmd/format-xl.go @@ -379,6 +379,22 @@ func saveFormatXL(disk StorageAPI, format interface{}) error { return disk.RenameFile(minioMetaBucket, formatConfigFileTmp, minioMetaBucket, formatConfigFile) } +var ignoredHiddenDirectories = []string{ + minioMetaBucket, + "lost+found", + "$RECYCLE.BIN", + "System Volume Information", +} + +func isIgnoreHiddenDirectories(dir string) bool { + for _, ignDir := range ignoredHiddenDirectories { + if dir == ignDir { + return true + } + } + return false +} + // loadFormatXL - loads format.json from disk. func loadFormatXL(disk StorageAPI) (format *formatXLV3, err error) { buf, err := disk.ReadAll(minioMetaBucket, formatConfigFile) @@ -391,9 +407,7 @@ func loadFormatXL(disk StorageAPI) (format *formatXLV3, err error) { if err != nil { return nil, err } - if len(vols) > 1 || (len(vols) == 1 && - vols[0].Name != minioMetaBucket && - vols[0].Name != "lost+found") { + if len(vols) > 1 || (len(vols) == 1 && !isIgnoreHiddenDirectories(vols[0].Name)) { // 'format.json' not found, but we // found user data. return nil, errCorruptedFormat