Skip to content

Commit 7b3139c

Browse files
committed
Fix create not returning EEXIST on Windows + add missing error code mapping
1 parent 36992a5 commit 7b3139c

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

internal/goofys_windows.go

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,32 @@ func mapWinError(err error) int {
122122
}
123123
err = mapAwsError(err)
124124
switch err {
125+
case syscall.EBUSY:
126+
return -fuse.EBUSY
127+
case syscall.ECONNRESET:
128+
return -fuse.ECONNRESET
129+
case syscall.EEXIST:
130+
return -fuse.EEXIST
131+
case syscall.EFBIG:
132+
return -fuse.EFBIG
133+
case syscall.EISDIR:
134+
return -fuse.EISDIR
135+
case syscall.ENODATA:
136+
return -fuse.ENODATA
137+
case syscall.ENODEV:
138+
return -fuse.ENODEV
139+
case syscall.ENOMEM:
140+
return -fuse.ENOMEM
141+
case syscall.ENOSYS:
142+
return -fuse.ENOSYS
143+
case syscall.ENOTEMPTY:
144+
return -fuse.ENOTEMPTY
145+
case syscall.ENXIO:
146+
return -fuse.ENXIO
147+
case syscall.ENOTDIR:
148+
return -fuse.ENOTDIR
149+
case syscall.EPERM:
150+
return -fuse.EPERM
125151
case syscall.EINVAL:
126152
return -fuse.EINVAL
127153
case syscall.EACCES:
@@ -138,6 +164,8 @@ func mapWinError(err error) int {
138164
return -fuse.EAGAIN
139165
case syscall.ESTALE:
140166
return -fuse.EINVAL
167+
case syscall.ESPIPE:
168+
return -fuse.ESPIPE
141169
case syscall.EOPNOTSUPP:
142170
return -fuse.EOPNOTSUPP
143171
default:
@@ -436,7 +464,7 @@ func (fs *GoofysWin) Create(path string, flags int, mode uint32) (ret int, fhId
436464
return mapWinError(err), 0
437465
}
438466

439-
inode, fh, err := parent.CreateOrOpen(child, true)
467+
inode, fh, err := parent.Create(child)
440468
if err != nil {
441469
return mapWinError(err), 0
442470
}

0 commit comments

Comments
 (0)