Skip to content

Commit 60df55f

Browse files
authored
Merge pull request #3500 from k8s-infra-cherrypick-robot/cherry-pick-3499-to-release-1.34
[release-1.34] fix: replace os.ReadDir with fs.ReadDir(1) to avoid extra memory usage
2 parents 2fce336 + d591759 commit 60df55f

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

pkg/azuredisk/nodeserver.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package azuredisk
1919
import (
2020
"context"
2121
"fmt"
22+
"io"
2223
"os"
2324
"path/filepath"
2425
"runtime"
@@ -644,7 +645,16 @@ func (d *Driver) ensureMountPoint(target string) (bool, error) {
644645

645646
if !notMnt {
646647
// testing original mount point, make sure the mount link is valid
647-
_, err := os.ReadDir(target)
648+
// Use ReadDir(1) instead of full os.ReadDir to avoid expensive directory listing
649+
f, err := os.Open(target)
650+
if err == nil {
651+
defer f.Close()
652+
_, err = f.ReadDir(1)
653+
// EOF means empty directory, which is valid
654+
if err == io.EOF {
655+
err = nil
656+
}
657+
}
648658
if err == nil {
649659
klog.V(2).Infof("already mounted to target %s", target)
650660
return !notMnt, nil

0 commit comments

Comments
 (0)