From f6e54154ce0015179909d82461867024d783e62d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= Date: Wed, 13 Apr 2022 20:16:48 +0200 Subject: [PATCH] Use filepath.WalkDir instead of filepath.Walk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ... to optimize away some lstat(2) calls. Signed-off-by: Miloslav Trmač --- oci/layout/oci_dest_test.go | 5 +++-- pkg/sysregistriesv2/system_registries_v2.go | 9 +++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/oci/layout/oci_dest_test.go b/oci/layout/oci_dest_test.go index 1e080138d..18dd27502 100644 --- a/oci/layout/oci_dest_test.go +++ b/oci/layout/oci_dest_test.go @@ -3,6 +3,7 @@ package layout import ( "bytes" "context" + "io/fs" "os" "path/filepath" "testing" @@ -142,7 +143,7 @@ func putTestConfig(t *testing.T, ociRef ociReference, tmpDir string) { assert.NoError(t, err) paths := []string{} - err = filepath.Walk(tmpDir, func(path string, info os.FileInfo, err error) error { + err = filepath.WalkDir(tmpDir, func(path string, _ fs.DirEntry, err error) error { paths = append(paths, path) return nil }) @@ -165,7 +166,7 @@ func putTestManifest(t *testing.T, ociRef ociReference, tmpDir string) { assert.NoError(t, err) paths := []string{} - err = filepath.Walk(tmpDir, func(path string, info os.FileInfo, err error) error { + err = filepath.WalkDir(tmpDir, func(path string, _ fs.DirEntry, err error) error { paths = append(paths, path) return nil }) diff --git a/pkg/sysregistriesv2/system_registries_v2.go b/pkg/sysregistriesv2/system_registries_v2.go index c5df241b7..c1753c845 100644 --- a/pkg/sysregistriesv2/system_registries_v2.go +++ b/pkg/sysregistriesv2/system_registries_v2.go @@ -2,6 +2,7 @@ package sysregistriesv2 import ( "fmt" + "io/fs" "os" "path/filepath" "reflect" @@ -643,17 +644,17 @@ func dropInConfigs(wrapper configWrapper) ([]string, error) { dirPaths = append(dirPaths, wrapper.userConfigDirPath) } for _, dirPath := range dirPaths { - err := filepath.Walk(dirPath, + err := filepath.WalkDir(dirPath, // WalkFunc to read additional configs - func(path string, info os.FileInfo, err error) error { + func(path string, d fs.DirEntry, err error) error { switch { case err != nil: // return error (could be a permission problem) return err - case info == nil: + case d == nil: // this should only happen when err != nil but let's be sure return nil - case info.IsDir(): + case d.IsDir(): if path != dirPath { // make sure to not recurse into sub-directories return filepath.SkipDir