diff --git a/cmd/fs-v1.go b/cmd/fs-v1.go index 20d77a0e3..de30ca006 100644 --- a/cmd/fs-v1.go +++ b/cmd/fs-v1.go @@ -60,6 +60,11 @@ func newFSObjects(storage StorageAPI) (ObjectLayer, error) { return nil, fmt.Errorf("Unable to recognize backend format, %s", err) } + // Initialize meta volume, if volume already exists ignores it. + if err = initMetaVolume([]StorageAPI{storage}); err != nil { + return nil, fmt.Errorf("Unable to initialize '.minio.sys' meta volume, %s", err) + } + // Initialize fs objects. fs := fsObjects{ storage: storage, diff --git a/cmd/object-common.go b/cmd/object-common.go index 5476edf86..9c82d5c17 100644 --- a/cmd/object-common.go +++ b/cmd/object-common.go @@ -211,22 +211,22 @@ func initMetaVolume(storageDisks []StorageAPI) error { if err != nil { if !isErrIgnored(err, initMetaVolIgnoredErrs...) { errs[index] = err + return } - return } err = disk.MakeVol(minioMetaTmpBucket) if err != nil { if !isErrIgnored(err, initMetaVolIgnoredErrs...) { errs[index] = err + return } - return } err = disk.MakeVol(minioMetaMultipartBucket) if err != nil { if !isErrIgnored(err, initMetaVolIgnoredErrs...) { errs[index] = err + return } - return } }(index, disk) } diff --git a/cmd/xl-v1.go b/cmd/xl-v1.go index 32760f4b5..490f9f732 100644 --- a/cmd/xl-v1.go +++ b/cmd/xl-v1.go @@ -112,6 +112,11 @@ func newXLObjects(storageDisks []StorageAPI) (ObjectLayer, error) { objCacheEnabled: !objCacheDisabled, } + // Initialize meta volume, if volume already exists ignores it. + if err = initMetaVolume(storageDisks); err != nil { + return nil, fmt.Errorf("Unable to initialize '.minio.sys' meta volume, %s", err) + } + // Figure out read and write quorum based on number of storage disks. // READ and WRITE quorum is always set to (N/2) number of disks. xl.readQuorum = readQuorum