DWORD VmDirSchemaModMutexRelease( PVDIR_OPERATION pOperation ) { DWORD dwError = 0; if (!pOperation) { dwError = ERROR_INVALID_PARAMETER; BAIL_ON_VMDIR_ERROR(dwError); } if (pOperation->dwSchemaWriteOp > 0) { pOperation->dwSchemaWriteOp--; if (pOperation->dwSchemaWriteOp == 0) { dwError = VmDirUnLockMutex(gVdirSchemaGlobals.cacheModMutex); BAIL_ON_VMDIR_ERROR(dwError); } } error: return dwError; }
static int _VmDirSASLMutexUnlock( PVOID pSASLMutex ) { DWORD dwError = SASL_OK; PVMDIR_MUTEX pLocalMutex = (PVMDIR_MUTEX) pSASLMutex; dwError = VmDirUnLockMutex(pLocalMutex); BAIL_ON_VMDIR_ERROR(dwError); cleanup: return (int)dwError; error: VMDIR_LOG_ERROR( VMDIR_LOG_MASK_ALL, "_VmDirSASLMutexUnlock failed (%d)", dwError); dwError = SASL_FAIL; goto cleanup; }