diff --git a/cmd/os-instrumented.go b/cmd/os-instrumented.go index 5dbe20cce..d9b92d4a4 100644 --- a/cmd/os-instrumented.go +++ b/cmd/os-instrumented.go @@ -51,7 +51,7 @@ const ( osMetricReadDirent osMetricFdatasync osMetricSync - osMetricRename2 // Linux specific + // .... add more osMetricLast diff --git a/cmd/os-rename_linux.go b/cmd/os-rename_linux.go index 952f8894f..b5805f7a8 100644 --- a/cmd/os-rename_linux.go +++ b/cmd/os-rename_linux.go @@ -22,16 +22,8 @@ package cmd import ( "syscall" - - "golang.org/x/sys/unix" ) -// Rename2 captures time taken to call os.Rename -func Rename2(src, dst string) (err error) { - defer updateOSMetrics(osMetricRename2, src, dst)(err) - return unix.Renameat2(unix.AT_FDCWD, src, unix.AT_FDCWD, dst, uint(2)) // RENAME_EXCHANGE from 'man renameat2' -} - // RenameSys is low level call in case of Linux this uses syscall.Rename() directly. func RenameSys(src, dst string) (err error) { return syscall.Rename(src, dst) diff --git a/cmd/os-rename_nolinux.go b/cmd/os-rename_nolinux.go index c88a367f4..5dd023d6d 100644 --- a/cmd/os-rename_nolinux.go +++ b/cmd/os-rename_nolinux.go @@ -24,11 +24,6 @@ import ( "os" ) -// Rename2 is not implemented in a non linux environment -func Rename2(src, dst string) (err error) { - return errSkipFile -} - // RenameSys is low level call in case of non-Linux this just uses os.Rename() func RenameSys(src, dst string) (err error) { return os.Rename(src, dst) diff --git a/cmd/osmetric_string.go b/cmd/osmetric_string.go index fec4c0926..2f5f49fca 100644 --- a/cmd/osmetric_string.go +++ b/cmd/osmetric_string.go @@ -26,13 +26,12 @@ func _() { _ = x[osMetricReadDirent-15] _ = x[osMetricFdatasync-16] _ = x[osMetricSync-17] - _ = x[osMetricRename2-18] - _ = x[osMetricLast-19] + _ = x[osMetricLast-18] } -const _osMetric_name = "RemoveAllMkdirAllMkdirRenameOpenFileWOpenFileROpenFileWFdOpenFileRFdOpenOpenFileDirectIOLstatRemoveStatAccessCreateReadDirentFdatasyncSyncRename2Last" +const _osMetric_name = "RemoveAllMkdirAllMkdirRenameOpenFileWOpenFileROpenFileWFdOpenFileRFdOpenOpenFileDirectIOLstatRemoveStatAccessCreateReadDirentFdatasyncSyncLast" -var _osMetric_index = [...]uint8{0, 9, 17, 22, 28, 37, 46, 57, 68, 72, 88, 93, 99, 103, 109, 115, 125, 134, 138, 145, 149} +var _osMetric_index = [...]uint8{0, 9, 17, 22, 28, 37, 46, 57, 68, 72, 88, 93, 99, 103, 109, 115, 125, 134, 138, 142} func (i osMetric) String() string { if i >= osMetric(len(_osMetric_index)-1) { diff --git a/cmd/xl-storage.go b/cmd/xl-storage.go index aadec5b9f..eae61506b 100644 --- a/cmd/xl-storage.go +++ b/cmd/xl-storage.go @@ -2633,13 +2633,6 @@ func (s *xlStorage) RenameData(ctx context.Context, srcVolume, srcPath string, f } diskHealthCheckOK(ctx, err) - if !fi.Versioned && !fi.DataMov() && !fi.Healing() { - // Use https://man7.org/linux/man-pages/man2/rename.2.html if possible on unversioned bucket. - if err := Rename2(pathutil.Join(srcVolumeDir, srcPath), pathutil.Join(dstVolumeDir, dstPath)); err == nil { - return sign, nil - } // if Rename2 is not successful fallback. - } - // renameAll only for objects that have xl.meta not saved inline. if len(fi.Data) == 0 && fi.Size > 0 { s.moveToTrash(dstDataPath, true, false)