From: Oliver Kurth Date: Fri, 15 Sep 2017 18:23:38 +0000 (-0700) Subject: file: Report correct error message when file is locked. X-Git-Tag: stable-10.2.0~220 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c72a0e9670327ed2060ae8ca3d529f69de0a385;p=thirdparty%2Fopen-vm-tools.git file: Report correct error message when file is locked. --- diff --git a/open-vm-tools/lib/file/fileLockPrimitive.c b/open-vm-tools/lib/file/fileLockPrimitive.c index 2987426dc..973a1c901 100644 --- a/open-vm-tools/lib/file/fileLockPrimitive.c +++ b/open-vm-tools/lib/file/fileLockPrimitive.c @@ -1565,6 +1565,7 @@ FileLockIntrinsicMandatory(const char *pathName, // IN: { int access; int loopCount = 0; + int errnum; FileIOResult result; FileLockToken *tokenPtr = Util_SafeMalloc(sizeof *tokenPtr); @@ -1582,6 +1583,7 @@ FileLockIntrinsicMandatory(const char *pathName, // IN: lockFile, access, FILEIO_OPEN_CREATE, 0600, 0); + errnum = Err_Errno(); if (result != FILEIO_LOCK_FAILED) { break; } @@ -1593,7 +1595,11 @@ FileLockIntrinsicMandatory(const char *pathName, // IN: return tokenPtr; } else { - *err = FileMapErrorToErrno(__FUNCTION__, Err_Errno()); + if (result == FILEIO_LOCK_FAILED) { + *err = 0; + } else { + *err = FileMapErrorToErrno(__FUNCTION__, errnum); + } free(tokenPtr->pathName); ASSERT(!FileIO_IsValid(&tokenPtr->u.mandatory.lockFd)); free(tokenPtr);