oops
diff --git a/lib/fs/basicfs_windows.go b/lib/fs/basicfs_windows.go
index c4b56de02..87d146d2b 100644
--- a/lib/fs/basicfs_windows.go
+++ b/lib/fs/basicfs_windows.go
@@ -42,11 +42,11 @@ func (f *BasicFilesystem) MkdirAll(path string, perm FileMode) error {
return err
}
- return f.mkdirAll(path, os.FileMode(perm))
+ return f.mkdirAll(path, perm)
}
// Required due to https://github.com/golang/go/issues/10900
-func (f *BasicFilesystem) mkdirAll(path string, perm os.FileMode) error {
+func (f *BasicFilesystem) mkdirAll(path string, perm FileMode) error {
// Fast path: if we can tell whether path is a directory or file, stop with success or error.
dir, err := os.Stat(path)
if err == nil {
@@ -74,8 +74,9 @@ func (f *BasicFilesystem) mkdirAll(path string, perm os.FileMode) error {
if j > 1 {
// Create parent
parent := path[0 : j-1]
+ l.Infoln("Volume name check", parent, filepath.VolumeName(parent))
if parent != filepath.VolumeName(parent) {
- err = os.MkdirAll(parent, perm)
+ err = f.mkdirAll(parent, perm)
if err != nil {
return err
}
@@ -83,7 +84,7 @@ func (f *BasicFilesystem) mkdirAll(path string, perm os.FileMode) error {
}
// Parent now exists; invoke Mkdir and use its result.
- err = os.Mkdir(path, perm)
+ err = os.Mkdir(path, os.FileMode(perm))
if err != nil {
// Handle arguments like "foo/." by
// double-checking that directory doesn't exist.
I patched at home, and on first sight it looks good. Have to enter debug info and test again. Be back later.
We should move further discussion to your bug report, as it is now pretty much proven to be a bug
Fails to create folder root directory on Windows ยท Issue #4762 ยท syncthing/syncthing ยท GitHub
I filed a PR to get buildable diffs: lib/fs: Fix MkdirAll failure due to \\?\ by imsodin ยท Pull Request #4763 ยท syncthing/syncthing ยท GitHub
Solved. Should be fixed in v0.14.46 .
Thanks!