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,
|
||||
FILE_SHARE_WRITE | FILE_SHARE_READ,
|
||||
NULL, create, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (handle == INVALID_HANDLE_VALUE)
|
||||
return errno = err_win_to_posix(GetLastError()), -1;
|
||||
if (handle == INVALID_HANDLE_VALUE) {
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user