Skip to content

Commit 6f0132e

Browse files
dsl101dscho
authored andcommitted
mingw: suggest windows.appendAtomically in more cases
When running Git for Windows on a remote APFS filesystem, it would appear that the `mingw_open_append()`/`write()` combination would fail almost exactly like on some CIFS-mounted shares as had been reported in #2753, albeit with a different `errno` value. Let's handle that `errno` value just the same, by suggesting to set `windows.appendAtomically=false`. Signed-off-by: David Lomas <[email protected]> Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 908a802 commit 6f0132e

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

compat/mingw.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -707,14 +707,14 @@ ssize_t mingw_write(int fd, const void *buf, size_t len)
707707
{
708708
ssize_t result = write(fd, buf, len);
709709

710-
if (result < 0 && (errno == EINVAL || errno == ENOSPC) && buf) {
710+
if (result < 0 && (errno == EINVAL || errno == EBADF || errno == ENOSPC) && buf) {
711711
int orig = errno;
712712

713713
/* check if fd is a pipe */
714714
HANDLE h = (HANDLE) _get_osfhandle(fd);
715715
if (GetFileType(h) != FILE_TYPE_PIPE)
716716
errno = orig;
717-
else if (orig == EINVAL)
717+
else if (orig == EINVAL || errno == EBADF)
718718
errno = EPIPE;
719719
else {
720720
DWORD buf_size;

0 commit comments

Comments
 (0)