diff --git a/lib/Basics/files.cpp b/lib/Basics/files.cpp index 88073b8d59..a67713d4f0 100644 --- a/lib/Basics/files.cpp +++ b/lib/Basics/files.cpp @@ -876,23 +876,17 @@ int TRI_UnlinkFile(char const* filename) { int res = TRI_UNLINK(filename); if (res != 0) { -#ifdef _WIN32 - int hihi = errno; - TRI_ERRORBUF; - TRI_SYSTEM_ERROR(); - - LOG(ERR) << "cannot unlink file: " << windowsErrorBuf << ", hihi: " << hihi << ", ENOENT: " << ENOENT; - errno = hihi; -#endif - + int e = errno; TRI_set_errno(TRI_ERROR_SYS_ERROR); LOG(TRACE) << "cannot unlink file '" << filename << "': " << TRI_LAST_ERROR_STR; - int e = TRI_errno(); if (e == ENOENT) { return TRI_ERROR_FILE_NOT_FOUND; + } + if (e == EPERM) { + return TRI_ERROR_FORBIDDEN; } - return e; + return TRI_ERROR_SYS_ERROR; } return TRI_ERROR_NO_ERROR;