Skip to content

Commit 183b9ac

Browse files
authored
Merge pull request #2959 from kubernetes-sigs/readdir-fix
fix: replace os.ReadDir with fs.ReadDir(1) to avoid extra memory usage
2 parents 4ce659a + a305c44 commit 183b9ac

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

pkg/azurefile/nodeserver.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package azurefile
1919
import (
2020
"encoding/json"
2121
"fmt"
22+
"io"
2223
"os"
2324
"path/filepath"
2425
"runtime"
@@ -800,7 +801,16 @@ func (d *Driver) ensureMountPoint(target string, perm os.FileMode) (bool, error)
800801

801802
if !notMnt {
802803
// testing original mount point, make sure the mount link is valid
803-
_, err := os.ReadDir(target)
804+
// Use ReadDir(1) instead of full os.ReadDir to avoid expensive directory listing
805+
f, err := os.Open(target)
806+
if err == nil {
807+
defer f.Close()
808+
_, err = f.ReadDir(1)
809+
// EOF means empty directory, which is valid
810+
if err == io.EOF {
811+
err = nil
812+
}
813+
}
804814
if err == nil {
805815
klog.V(2).Infof("already mounted to target %s", target)
806816
return !notMnt, nil

0 commit comments

Comments
 (0)