mirror of
https://github.com/minio/minio.git
synced 2024-12-25 06:35:56 -05:00
disable check for DirectIO in standalone FS mode (#9558)
This commit is contained in:
parent
0f1389e992
commit
6885c72f32
@ -129,12 +129,9 @@ func NewFSObjectLayer(fsPath string) (ObjectLayer, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
if fsPath, err = getValidPath(fsPath); err != nil {
|
if fsPath, err = getValidPath(fsPath, false); err != nil {
|
||||||
if err == errMinDiskSize {
|
if err == errMinDiskSize {
|
||||||
return nil, config.ErrUnableToWriteInBackend(err).Hint(err.Error())
|
return nil, config.ErrUnableToWriteInBackend(err).Hint(err.Error())
|
||||||
} else if err == errUnsupportedDisk {
|
|
||||||
hint := fmt.Sprintf("'%s' does not support O_DIRECT flags, refusing to use", fsPath)
|
|
||||||
return nil, config.ErrUnsupportedBackend(err).Hint(hint)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show a descriptive error with a hint about how to fix it.
|
// Show a descriptive error with a hint about how to fix it.
|
||||||
|
13
cmd/posix.go
13
cmd/posix.go
@ -140,7 +140,7 @@ func checkPathLength(pathName string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getValidPath(path string) (string, error) {
|
func getValidPath(path string, requireDirectIO bool) (string, error) {
|
||||||
if path == "" {
|
if path == "" {
|
||||||
return path, errInvalidArgument
|
return path, errInvalidArgument
|
||||||
}
|
}
|
||||||
@ -181,9 +181,16 @@ func getValidPath(path string) (string, error) {
|
|||||||
fn := pathJoin(path, ".writable-check-"+hex.EncodeToString(rnd[:])+".tmp")
|
fn := pathJoin(path, ".writable-check-"+hex.EncodeToString(rnd[:])+".tmp")
|
||||||
defer os.Remove(fn)
|
defer os.Remove(fn)
|
||||||
|
|
||||||
|
var file *os.File
|
||||||
|
|
||||||
|
if requireDirectIO {
|
||||||
|
file, err = disk.OpenFileDirectIO(fn, os.O_CREATE|os.O_EXCL, 0666)
|
||||||
|
} else {
|
||||||
|
file, err = os.OpenFile(fn, os.O_CREATE|os.O_EXCL, 0666)
|
||||||
|
}
|
||||||
|
|
||||||
// open file in direct I/O and use default umask, this also verifies
|
// open file in direct I/O and use default umask, this also verifies
|
||||||
// if direct i/o failed.
|
// if direct i/o failed.
|
||||||
file, err := disk.OpenFileDirectIO(fn, os.O_CREATE|os.O_EXCL, 0666)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if isSysErrInvalidArg(err) {
|
if isSysErrInvalidArg(err) {
|
||||||
return path, errUnsupportedDisk
|
return path, errUnsupportedDisk
|
||||||
@ -222,7 +229,7 @@ func isDirEmpty(dirname string) bool {
|
|||||||
// Initialize a new storage disk.
|
// Initialize a new storage disk.
|
||||||
func newPosix(path string) (*posix, error) {
|
func newPosix(path string) (*posix, error) {
|
||||||
var err error
|
var err error
|
||||||
if path, err = getValidPath(path); err != nil {
|
if path, err = getValidPath(path, true); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
_, err = os.Stat(path)
|
_, err = os.Stat(path)
|
||||||
|
Loading…
Reference in New Issue
Block a user