Merge branch 'js/mingw-isilon-nfs'
* js/mingw-isilon-nfs: mingw: cope with the Isilon network file system
This commit is contained in:
commit
a41b41ca74
@ -460,8 +460,21 @@ static int mingw_open_append(wchar_t const *wfilename, int oflags, ...)
|
|||||||
handle = CreateFileW(wfilename, FILE_APPEND_DATA,
|
handle = CreateFileW(wfilename, FILE_APPEND_DATA,
|
||||||
FILE_SHARE_WRITE | FILE_SHARE_READ,
|
FILE_SHARE_WRITE | FILE_SHARE_READ,
|
||||||
NULL, create, FILE_ATTRIBUTE_NORMAL, NULL);
|
NULL, create, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||||
if (handle == INVALID_HANDLE_VALUE)
|
if (handle == INVALID_HANDLE_VALUE) {
|
||||||
return errno = err_win_to_posix(GetLastError()), -1;
|
DWORD err = GetLastError();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some network storage solutions (e.g. Isilon) might return
|
||||||
|
* ERROR_INVALID_PARAMETER instead of expected error
|
||||||
|
* ERROR_PATH_NOT_FOUND, which results in an unknown error. If
|
||||||
|
* so, let's turn the error to ERROR_PATH_NOT_FOUND instead.
|
||||||
|
*/
|
||||||
|
if (err == ERROR_INVALID_PARAMETER)
|
||||||
|
err = ERROR_PATH_NOT_FOUND;
|
||||||
|
|
||||||
|
errno = err_win_to_posix(err);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* No O_APPEND here, because the CRT uses it only to reset the
|
* No O_APPEND here, because the CRT uses it only to reset the
|
||||||
|
Loading…
Reference in New Issue
Block a user