Lines Matching refs:pInode

222   unixInodeInfo *pInode;              /* Info about locks on this inode */  member
1196 assert( pFile->pInode ); in unixFileMutexHeld()
1197 return sqlite3_mutex_held(pFile->pInode->pLockMutex); in unixFileMutexHeld()
1200 assert( pFile->pInode ); in unixFileMutexNotheld()
1201 return sqlite3_mutex_notheld(pFile->pInode->pLockMutex); in unixFileMutexNotheld()
1306 unixInodeInfo *pInode = pFile->pInode; in closePendingFds() local
1310 for(p=pInode->pUnused; p; p=pNext){ in closePendingFds()
1315 pInode->pUnused = 0; in closePendingFds()
1325 unixInodeInfo *pInode = pFile->pInode; in releaseInodeInfo() local
1328 if( ALWAYS(pInode) ){ in releaseInodeInfo()
1329 pInode->nRef--; in releaseInodeInfo()
1330 if( pInode->nRef==0 ){ in releaseInodeInfo()
1331 assert( pInode->pShmNode==0 ); in releaseInodeInfo()
1332 sqlite3_mutex_enter(pInode->pLockMutex); in releaseInodeInfo()
1334 sqlite3_mutex_leave(pInode->pLockMutex); in releaseInodeInfo()
1335 if( pInode->pPrev ){ in releaseInodeInfo()
1336 assert( pInode->pPrev->pNext==pInode ); in releaseInodeInfo()
1337 pInode->pPrev->pNext = pInode->pNext; in releaseInodeInfo()
1339 assert( inodeList==pInode ); in releaseInodeInfo()
1340 inodeList = pInode->pNext; in releaseInodeInfo()
1342 if( pInode->pNext ){ in releaseInodeInfo()
1343 assert( pInode->pNext->pPrev==pInode ); in releaseInodeInfo()
1344 pInode->pNext->pPrev = pInode->pPrev; in releaseInodeInfo()
1346 sqlite3_mutex_free(pInode->pLockMutex); in releaseInodeInfo()
1347 sqlite3_free(pInode); in releaseInodeInfo()
1369 unixInodeInfo *pInode = 0; /* Candidate unixInodeInfo object */ in findInodeInfo() local
1419 pInode = inodeList; in findInodeInfo()
1420 while( pInode && memcmp(&fileId, &pInode->fileId, sizeof(fileId)) ){ in findInodeInfo()
1421 pInode = pInode->pNext; in findInodeInfo()
1423 if( pInode==0 ){ in findInodeInfo()
1424 pInode = sqlite3_malloc64( sizeof(*pInode) ); in findInodeInfo()
1425 if( pInode==0 ){ in findInodeInfo()
1428 memset(pInode, 0, sizeof(*pInode)); in findInodeInfo()
1429 memcpy(&pInode->fileId, &fileId, sizeof(fileId)); in findInodeInfo()
1431 pInode->pLockMutex = sqlite3_mutex_alloc(SQLITE_MUTEX_FAST); in findInodeInfo()
1432 if( pInode->pLockMutex==0 ){ in findInodeInfo()
1433 sqlite3_free(pInode); in findInodeInfo()
1437 pInode->nRef = 1; in findInodeInfo()
1439 pInode->pNext = inodeList; in findInodeInfo()
1440 pInode->pPrev = 0; in findInodeInfo()
1441 if( inodeList ) inodeList->pPrev = pInode; in findInodeInfo()
1442 inodeList = pInode; in findInodeInfo()
1444 pInode->nRef++; in findInodeInfo()
1446 *ppInode = pInode; in findInodeInfo()
1455 return pFile->pInode!=0 && pFile->pId!=pFile->pInode->fileId.pId; in fileHasMoved()
1458 return pFile->pInode!=0 && in fileHasMoved()
1460 || (u64)buf.st_ino!=pFile->pInode->fileId.ino); in fileHasMoved()
1516 sqlite3_mutex_enter(pFile->pInode->pLockMutex); in unixCheckReservedLock()
1519 if( pFile->pInode->eFileLock>SHARED_LOCK ){ in unixCheckReservedLock()
1526 if( !reserved && !pFile->pInode->bProcessLock ){ in unixCheckReservedLock()
1541 sqlite3_mutex_leave(pFile->pInode->pLockMutex); in unixCheckReservedLock()
1610 unixInodeInfo *pInode = pFile->pInode; in unixFileLock() local
1611 assert( pInode!=0 ); in unixFileLock()
1612 assert( sqlite3_mutex_held(pInode->pLockMutex) ); in unixFileLock()
1614 if( pInode->bProcessLock==0 ){ in unixFileLock()
1616 assert( pInode->nLock==0 ); in unixFileLock()
1623 pInode->bProcessLock = 1; in unixFileLock()
1624 pInode->nLock++; in unixFileLock()
1700 unixInodeInfo *pInode; in unixLock() local
1707 azFileLock(pFile->pInode->eFileLock), pFile->pInode->nShared, in unixLock()
1731 pInode = pFile->pInode; in unixLock()
1732 sqlite3_mutex_enter(pInode->pLockMutex); in unixLock()
1737 if( (pFile->eFileLock!=pInode->eFileLock && in unixLock()
1738 (pInode->eFileLock>=PENDING_LOCK || eFileLock>SHARED_LOCK)) in unixLock()
1749 (pInode->eFileLock==SHARED_LOCK || pInode->eFileLock==RESERVED_LOCK) ){ in unixLock()
1752 assert( pInode->nShared>0 ); in unixLock()
1754 pInode->nShared++; in unixLock()
1755 pInode->nLock++; in unixLock()
1786 assert( pInode->nShared==0 ); in unixLock()
1787 assert( pInode->eFileLock==0 ); in unixLock()
1815 pInode->nLock++; in unixLock()
1816 pInode->nShared = 1; in unixLock()
1818 }else if( eFileLock==EXCLUSIVE_LOCK && pInode->nShared>1 ){ in unixLock()
1868 pInode->eFileLock = eFileLock; in unixLock()
1871 pInode->eFileLock = PENDING_LOCK; in unixLock()
1875 sqlite3_mutex_leave(pInode->pLockMutex); in unixLock()
1886 unixInodeInfo *pInode = pFile->pInode; in setPendingFd() local
1889 p->pNext = pInode->pUnused; in setPendingFd()
1890 pInode->pUnused = p; in setPendingFd()
1910 unixInodeInfo *pInode; in posixUnlock() local
1916 pFile->eFileLock, pFile->pInode->eFileLock, pFile->pInode->nShared, in posixUnlock()
1923 pInode = pFile->pInode; in posixUnlock()
1924 sqlite3_mutex_enter(pInode->pLockMutex); in posixUnlock()
1925 assert( pInode->nShared!=0 ); in posixUnlock()
1927 assert( pInode->eFileLock==pFile->eFileLock ); in posixUnlock()
2017 pInode->eFileLock = SHARED_LOCK; in posixUnlock()
2029 pInode->nShared--; in posixUnlock()
2030 if( pInode->nShared==0 ){ in posixUnlock()
2035 pInode->eFileLock = NO_LOCK; in posixUnlock()
2039 pInode->eFileLock = NO_LOCK; in posixUnlock()
2048 pInode->nLock--; in posixUnlock()
2049 assert( pInode->nLock>=0 ); in posixUnlock()
2050 if( pInode->nLock==0 ) closePendingFds(pFile); in posixUnlock()
2054 sqlite3_mutex_leave(pInode->pLockMutex); in posixUnlock()
2128 unixInodeInfo *pInode = pFile->pInode; in unixClose() local
2130 assert( pInode!=0 ); in unixClose()
2139 assert( pFile->pInode->nLock>0 || pFile->pInode->bProcessLock==0 ); in unixClose()
2140 sqlite3_mutex_enter(pInode->pLockMutex); in unixClose()
2141 if( pInode->nLock ){ in unixClose()
2149 sqlite3_mutex_leave(pInode->pLockMutex); in unixClose()
2622 sem_t *pSem = pFile->pInode->pSem; in semXCheckReservedLock()
2675 sem_t *pSem = pFile->pInode->pSem; in semXLock()
2708 sem_t *pSem = pFile->pInode->pSem; in semXUnlock()
2863 sqlite3_mutex_enter(pFile->pInode->pLockMutex); in afpCheckReservedLock()
2865 if( pFile->pInode->eFileLock>SHARED_LOCK ){ in afpCheckReservedLock()
2887 sqlite3_mutex_leave(pFile->pInode->pLockMutex); in afpCheckReservedLock()
2921 unixInodeInfo *pInode = pFile->pInode; in afpLock() local
2927 azFileLock(pInode->eFileLock), pInode->nShared , osGetpid(0))); in afpLock()
2950 pInode = pFile->pInode; in afpLock()
2951 sqlite3_mutex_enter(pInode->pLockMutex); in afpLock()
2956 if( (pFile->eFileLock!=pInode->eFileLock && in afpLock()
2957 (pInode->eFileLock>=PENDING_LOCK || eFileLock>SHARED_LOCK)) in afpLock()
2968 (pInode->eFileLock==SHARED_LOCK || pInode->eFileLock==RESERVED_LOCK) ){ in afpLock()
2971 assert( pInode->nShared>0 ); in afpLock()
2973 pInode->nShared++; in afpLock()
2974 pInode->nLock++; in afpLock()
3000 assert( pInode->nShared==0 ); in afpLock()
3001 assert( pInode->eFileLock==0 ); in afpLock()
3007 pInode->sharedByte = (lk & mask)%(SHARED_SIZE - 1); in afpLock()
3009 SHARED_FIRST+pInode->sharedByte, 1, 1); in afpLock()
3027 pInode->nLock++; in afpLock()
3028 pInode->nShared = 1; in afpLock()
3030 }else if( eFileLock==EXCLUSIVE_LOCK && pInode->nShared>1 ){ in afpLock()
3055 pInode->sharedByte, 1, 0)) ){ in afpLock()
3061 SHARED_FIRST + pInode->sharedByte, 1, 1)) ){ in afpLock()
3080 pInode->eFileLock = eFileLock; in afpLock()
3083 pInode->eFileLock = PENDING_LOCK; in afpLock()
3087 sqlite3_mutex_leave(pInode->pLockMutex); in afpLock()
3103 unixInodeInfo *pInode; in afpUnlock() local
3112 pFile->eFileLock, pFile->pInode->eFileLock, pFile->pInode->nShared, in afpUnlock()
3119 pInode = pFile->pInode; in afpUnlock()
3120 sqlite3_mutex_enter(pInode->pLockMutex); in afpUnlock()
3121 assert( pInode->nShared!=0 ); in afpUnlock()
3123 assert( pInode->eFileLock==pFile->eFileLock ); in afpUnlock()
3145 if( rc==SQLITE_OK && (eFileLock==SHARED_LOCK || pInode->nShared>1) ){ in afpUnlock()
3147 int sharedLockByte = SHARED_FIRST+pInode->sharedByte; in afpUnlock()
3162 if( rc==SQLITE_OK && (eFileLock==SHARED_LOCK || pInode->nShared>1)){ in afpUnlock()
3163 pInode->eFileLock = SHARED_LOCK; in afpUnlock()
3172 unsigned long long sharedLockByte = SHARED_FIRST+pInode->sharedByte; in afpUnlock()
3173 pInode->nShared--; in afpUnlock()
3174 if( pInode->nShared==0 ){ in afpUnlock()
3182 pInode->eFileLock = NO_LOCK; in afpUnlock()
3187 pInode->nLock--; in afpUnlock()
3188 assert( pInode->nLock>=0 ); in afpUnlock()
3189 if( pInode->nLock==0 ) closePendingFds(pFile); in afpUnlock()
3193 sqlite3_mutex_leave(pInode->pLockMutex); in afpUnlock()
3210 if( pFile->pInode ){ in afpClose()
3211 unixInodeInfo *pInode = pFile->pInode; in afpClose() local
3212 sqlite3_mutex_enter(pInode->pLockMutex); in afpClose()
3213 if( pInode->nLock ){ in afpClose()
3221 sqlite3_mutex_leave(pInode->pLockMutex); in afpClose()
4280 unixInodeInfo *pInode; /* unixInodeInfo that owns this SHM node */ member
4378 pShmNode = pFile->pInode->pShmNode; in unixShmSystemLock()
4467 unixShmNode *p = pFd->pInode->pShmNode; in unixShmPurge()
4472 assert( p->pInode==pFd->pInode ); in unixShmPurge()
4486 p->pInode->pShmNode = 0; in unixShmPurge()
4593 unixInodeInfo *pInode; /* The inode of fd */ in unixOpenSharedMemory() local
4608 pInode = pDbFd->pInode; in unixOpenSharedMemory()
4609 pShmNode = pInode->pShmNode; in unixOpenSharedMemory()
4646 pDbFd->pInode->pShmNode = pShmNode; in unixOpenSharedMemory()
4647 pShmNode->pInode = pDbFd->pInode; in unixOpenSharedMemory()
4656 if( pInode->bProcessLock==0 ){ in unixOpenSharedMemory()
4760 assert( pShmNode->pInode==pDbFd->pInode ); in unixShmMap()
4761 assert( pShmNode->hShm>=0 || pDbFd->pInode->bProcessLock==1 ); in unixShmMap()
4762 assert( pShmNode->hShm<0 || pDbFd->pInode->bProcessLock==0 ); in unixShmMap()
4925 assert( pShmNode==pDbFd->pInode->pShmNode ); in unixShmLock()
4926 assert( pShmNode->pInode==pDbFd->pInode ); in unixShmLock()
4934 assert( pShmNode->hShm>=0 || pDbFd->pInode->bProcessLock==1 ); in unixShmLock()
4935 assert( pShmNode->hShm<0 || pDbFd->pInode->bProcessLock==0 ); in unixShmLock()
5077 assert( pShmNode==pDbFd->pInode->pShmNode ); in unixShmUnmap()
5078 assert( pShmNode->pInode==pDbFd->pInode ); in unixShmUnmap()
5646 assert( pNew->pInode==NULL ); in fillInUnixFile()
5693 rc = findInodeInfo(pNew, &pNew->pInode); in fillInUnixFile()
5736 rc = findInodeInfo(pNew, &pNew->pInode); in fillInUnixFile()
5770 rc = findInodeInfo(pNew, &pNew->pInode); in fillInUnixFile()
5771 if( (rc==SQLITE_OK) && (pNew->pInode->pSem==NULL) ){ in fillInUnixFile()
5772 char *zSemName = pNew->pInode->aSemName; in fillInUnixFile()
5778 pNew->pInode->pSem = sem_open(zSemName, O_CREAT, 0666, 1); in fillInUnixFile()
5779 if( pNew->pInode->pSem == SEM_FAILED ){ in fillInUnixFile()
5781 pNew->pInode->aSemName[0] = '\0'; in fillInUnixFile()
5936 unixInodeInfo *pInode; in findReusableFd() local
5938 pInode = inodeList; in findReusableFd()
5939 while( pInode && (pInode->fileId.dev!=sStat.st_dev in findReusableFd()
5940 || pInode->fileId.ino!=(u64)sStat.st_ino) ){ in findReusableFd()
5941 pInode = pInode->pNext; in findReusableFd()
5943 if( pInode ){ in findReusableFd()
5945 assert( sqlite3_mutex_notheld(pInode->pLockMutex) ); in findReusableFd()
5946 sqlite3_mutex_enter(pInode->pLockMutex); in findReusableFd()
5948 for(pp=&pInode->pUnused; *pp && (*pp)->flags!=flags; pp=&((*pp)->pNext)); in findReusableFd()
5953 sqlite3_mutex_leave(pInode->pLockMutex); in findReusableFd()
7415 if( conchFile->pInode && conchFile->pInode->nShared>1 ){ in proxyTakeConch()