From a7340ff36c01d9bf0f6fa6ab22b2d31e90c00a45 Mon Sep 17 00:00:00 2001 From: Tim Allclair Date: Mon, 16 Dec 2024 14:10:56 -0800 Subject: [PATCH] [windows] Don't chown existing directory in MkdirAll --- pkg/util/filesystem/util_windows.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pkg/util/filesystem/util_windows.go b/pkg/util/filesystem/util_windows.go index 5cdc586d61e..f2c43025d48 100644 --- a/pkg/util/filesystem/util_windows.go +++ b/pkg/util/filesystem/util_windows.go @@ -94,14 +94,21 @@ func IsUnixDomainSocket(filePath string) (bool, error) { // permissions once the directory is created. func MkdirAll(path string, perm os.FileMode) error { klog.V(6).InfoS("Function MkdirAll starts", "path", path, "perm", perm) + if _, err := os.Stat(path); err == nil { + // Path already exists: nothing to do. + return nil + } else if !os.IsNotExist(err) { + return fmt.Errorf("error checking path %s: %w", path, err) + } + err := os.MkdirAll(path, perm) if err != nil { - return fmt.Errorf("Error creating directory %s: %v", path, err) + return fmt.Errorf("error creating directory %s: %w", path, err) } err = Chmod(path, perm) if err != nil { - return fmt.Errorf("Error setting permissions for directory %s: %v", path, err) + return fmt.Errorf("error setting permissions for directory %s: %w", path, err) } return nil