diff --git a/cmd/is-dir-empty_linux.go b/cmd/is-dir-empty_linux.go
new file mode 100644
index 000000000..f7ad4f74f
--- /dev/null
+++ b/cmd/is-dir-empty_linux.go
@@ -0,0 +1,32 @@
+//go:build linux && !appengine
+// +build linux,!appengine
+
+// Copyright (c) 2015-2024 MinIO, Inc.
+//
+// This file is part of MinIO Object Storage stack
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+package cmd
+
+import "syscall"
+
+// Returns true if no error and there is no object or prefix inside this directory
+func isDirEmpty(dirname string) bool {
+ var stat syscall.Stat_t
+ if err := syscall.Stat(dirname, &stat); err != nil {
+ return false
+ }
+ return stat.Mode&syscall.S_IFMT == syscall.S_IFDIR && stat.Nlink < 3
+}
diff --git a/cmd/is-dir-empty_other.go b/cmd/is-dir-empty_other.go
new file mode 100644
index 000000000..e9ccdc021
--- /dev/null
+++ b/cmd/is-dir-empty_other.go
@@ -0,0 +1,30 @@
+//go:build !linux
+// +build !linux
+
+// Copyright (c) 2015-2021 MinIO, Inc.
+//
+// This file is part of MinIO Object Storage stack
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+package cmd
+
+// isDirEmpty - returns true if there is no error and no object and prefix inside this directory
+func isDirEmpty(dirname string) bool {
+ entries, err := readDirN(dirname, 1)
+ if err != nil {
+ return false
+ }
+ return len(entries) == 0
+}
diff --git a/cmd/xl-storage.go b/cmd/xl-storage.go
index dc62f08d3..8883a6c04 100644
--- a/cmd/xl-storage.go
+++ b/cmd/xl-storage.go
@@ -195,15 +195,6 @@ func getValidPath(path string) (string, error) {
return path, nil
}
-// isDirEmpty - returns whether given directory is empty or not.
-func isDirEmpty(dirname string) bool {
- entries, err := readDirN(dirname, 1)
- if err != nil {
- return false
- }
- return len(entries) == 0
-}
-
// Initialize a new storage disk.
func newLocalXLStorage(path string) (*xlStorage, error) {
u := url.URL{Path: path}