@@ -936,13 +936,13 @@ LockAcquireExtended(const LOCKTAG *locktag,
936936 * FastPathStrongRelationLocks->counts becomes visible after we test
937937 * it has yet to begin to transfer fast-path locks.
938938 */
939- LWLockAcquire (& MyProc -> backendLock ,LW_EXCLUSIVE );
939+ LWLockAcquire (& MyProc -> fpInfoLock ,LW_EXCLUSIVE );
940940if (FastPathStrongRelationLocks -> count [fasthashcode ]!= 0 )
941941acquired = false;
942942else
943943acquired = FastPathGrantRelationLock (locktag -> locktag_field2 ,
944944lockmode );
945- LWLockRelease (& MyProc -> backendLock );
945+ LWLockRelease (& MyProc -> fpInfoLock );
946946if (acquired )
947947{
948948/*
@@ -2085,10 +2085,10 @@ LockRelease(const LOCKTAG *locktag, LOCKMODE lockmode, bool sessionLock)
20852085 * We might not find the lock here, even if we originally entered it
20862086 * here. Another backend may have moved it to the main table.
20872087 */
2088- LWLockAcquire (& MyProc -> backendLock ,LW_EXCLUSIVE );
2088+ LWLockAcquire (& MyProc -> fpInfoLock ,LW_EXCLUSIVE );
20892089released = FastPathUnGrantRelationLock (locktag -> locktag_field2 ,
20902090lockmode );
2091- LWLockRelease (& MyProc -> backendLock );
2091+ LWLockRelease (& MyProc -> fpInfoLock );
20922092if (released )
20932093{
20942094RemoveLocalLock (locallock );
@@ -2291,7 +2291,7 @@ LockReleaseAll(LOCKMETHODID lockmethodid, bool allLocks)
22912291 */
22922292if (!have_fast_path_lwlock )
22932293{
2294- LWLockAcquire (& MyProc -> backendLock ,LW_EXCLUSIVE );
2294+ LWLockAcquire (& MyProc -> fpInfoLock ,LW_EXCLUSIVE );
22952295have_fast_path_lwlock = true;
22962296}
22972297
@@ -2308,7 +2308,7 @@ LockReleaseAll(LOCKMETHODID lockmethodid, bool allLocks)
23082308 * transferred to the main lock table. That's going to require
23092309 * some extra work, so release our fast-path lock before starting.
23102310 */
2311- LWLockRelease (& MyProc -> backendLock );
2311+ LWLockRelease (& MyProc -> fpInfoLock );
23122312have_fast_path_lwlock = false;
23132313
23142314/*
@@ -2334,7 +2334,7 @@ LockReleaseAll(LOCKMETHODID lockmethodid, bool allLocks)
23342334
23352335/* Done with the fast-path data structures */
23362336if (have_fast_path_lwlock )
2337- LWLockRelease (& MyProc -> backendLock );
2337+ LWLockRelease (& MyProc -> fpInfoLock );
23382338
23392339/*
23402340 * Now, scan each lock partition separately.
@@ -2737,7 +2737,7 @@ FastPathTransferRelationLocks(LockMethod lockMethodTable, const LOCKTAG *locktag
27372737PGPROC * proc = & ProcGlobal -> allProcs [i ];
27382738uint32 f ;
27392739
2740- LWLockAcquire (& proc -> backendLock ,LW_EXCLUSIVE );
2740+ LWLockAcquire (& proc -> fpInfoLock ,LW_EXCLUSIVE );
27412741
27422742/*
27432743 * If the target backend isn't referencing the same database as the
@@ -2746,8 +2746,8 @@ FastPathTransferRelationLocks(LockMethod lockMethodTable, const LOCKTAG *locktag
27462746 *
27472747 * proc->databaseId is set at backend startup time and never changes
27482748 * thereafter, so it might be safe to perform this test before
2749- * acquiring &proc->backendLock . In particular, it's certainly safe
2750- *to assume that if the target backend holds any fast-path locks, it
2749+ * acquiring &proc->fpInfoLock . In particular, it's certainly safe to
2750+ * assume that if the target backend holds any fast-path locks, it
27512751 * must have performed a memory-fencing operation (in particular, an
27522752 * LWLock acquisition) since setting proc->databaseId. However, it's
27532753 * less clear that our backend is certain to have performed a memory
@@ -2756,7 +2756,7 @@ FastPathTransferRelationLocks(LockMethod lockMethodTable, const LOCKTAG *locktag
27562756 */
27572757if (proc -> databaseId != locktag -> locktag_field1 )
27582758{
2759- LWLockRelease (& proc -> backendLock );
2759+ LWLockRelease (& proc -> fpInfoLock );
27602760continue ;
27612761}
27622762
@@ -2783,7 +2783,7 @@ FastPathTransferRelationLocks(LockMethod lockMethodTable, const LOCKTAG *locktag
27832783if (!proclock )
27842784{
27852785LWLockRelease (partitionLock );
2786- LWLockRelease (& proc -> backendLock );
2786+ LWLockRelease (& proc -> fpInfoLock );
27872787return false;
27882788}
27892789GrantLock (proclock -> tag .myLock ,proclock ,lockmode );
@@ -2794,7 +2794,7 @@ FastPathTransferRelationLocks(LockMethod lockMethodTable, const LOCKTAG *locktag
27942794/* No need to examine remaining slots. */
27952795break ;
27962796}
2797- LWLockRelease (& proc -> backendLock );
2797+ LWLockRelease (& proc -> fpInfoLock );
27982798}
27992799return true;
28002800}
@@ -2816,7 +2816,7 @@ FastPathGetRelationLockEntry(LOCALLOCK *locallock)
28162816Oid relid = locktag -> locktag_field2 ;
28172817uint32 f ;
28182818
2819- LWLockAcquire (& MyProc -> backendLock ,LW_EXCLUSIVE );
2819+ LWLockAcquire (& MyProc -> fpInfoLock ,LW_EXCLUSIVE );
28202820
28212821for (f = 0 ;f < FP_LOCK_SLOTS_PER_BACKEND ;f ++ )
28222822{
@@ -2839,7 +2839,7 @@ FastPathGetRelationLockEntry(LOCALLOCK *locallock)
28392839if (!proclock )
28402840{
28412841LWLockRelease (partitionLock );
2842- LWLockRelease (& MyProc -> backendLock );
2842+ LWLockRelease (& MyProc -> fpInfoLock );
28432843ereport (ERROR ,
28442844(errcode (ERRCODE_OUT_OF_MEMORY ),
28452845errmsg ("out of shared memory" ),
@@ -2854,7 +2854,7 @@ FastPathGetRelationLockEntry(LOCALLOCK *locallock)
28542854break ;
28552855}
28562856
2857- LWLockRelease (& MyProc -> backendLock );
2857+ LWLockRelease (& MyProc -> fpInfoLock );
28582858
28592859/* Lock may have already been transferred by some other backend. */
28602860if (proclock == NULL )
@@ -2980,7 +2980,7 @@ GetLockConflicts(const LOCKTAG *locktag, LOCKMODE lockmode, int *countp)
29802980if (proc == MyProc )
29812981continue ;
29822982
2983- LWLockAcquire (& proc -> backendLock ,LW_SHARED );
2983+ LWLockAcquire (& proc -> fpInfoLock ,LW_SHARED );
29842984
29852985/*
29862986 * If the target backend isn't referencing the same database as
@@ -2992,7 +2992,7 @@ GetLockConflicts(const LOCKTAG *locktag, LOCKMODE lockmode, int *countp)
29922992 */
29932993if (proc -> databaseId != locktag -> locktag_field1 )
29942994{
2995- LWLockRelease (& proc -> backendLock );
2995+ LWLockRelease (& proc -> fpInfoLock );
29962996continue ;
29972997}
29982998
@@ -3030,7 +3030,7 @@ GetLockConflicts(const LOCKTAG *locktag, LOCKMODE lockmode, int *countp)
30303030break ;
30313031}
30323032
3033- LWLockRelease (& proc -> backendLock );
3033+ LWLockRelease (& proc -> fpInfoLock );
30343034}
30353035}
30363036
@@ -3599,7 +3599,7 @@ GetLockStatusData(void)
35993599PGPROC * proc = & ProcGlobal -> allProcs [i ];
36003600uint32 f ;
36013601
3602- LWLockAcquire (& proc -> backendLock ,LW_SHARED );
3602+ LWLockAcquire (& proc -> fpInfoLock ,LW_SHARED );
36033603
36043604for (f = 0 ;f < FP_LOCK_SLOTS_PER_BACKEND ;++ f )
36053605{
@@ -3659,7 +3659,7 @@ GetLockStatusData(void)
36593659el ++ ;
36603660}
36613661
3662- LWLockRelease (& proc -> backendLock );
3662+ LWLockRelease (& proc -> fpInfoLock );
36633663}
36643664
36653665/*
@@ -4381,7 +4381,7 @@ lock_twophase_postabort(TransactionId xid, uint16 info,
43814381 *as MyProc->lxid, you might wonder if we really need both. The
43824382 *difference is that MyProc->lxid is set and cleared unlocked, and
43834383 *examined by procarray.c, while fpLocalTransactionId is protected by
4384- *backendLock and is used only by the locking subsystem. Doing it this
4384+ *fpInfoLock and is used only by the locking subsystem. Doing it this
43854385 *way makes it easier to verify that there are no funny race conditions.
43864386 *
43874387 *We don't bother recording this lock in the local lock table, since it's
@@ -4393,7 +4393,7 @@ VirtualXactLockTableInsert(VirtualTransactionId vxid)
43934393{
43944394Assert (VirtualTransactionIdIsValid (vxid ));
43954395
4396- LWLockAcquire (& MyProc -> backendLock ,LW_EXCLUSIVE );
4396+ LWLockAcquire (& MyProc -> fpInfoLock ,LW_EXCLUSIVE );
43974397
43984398Assert (MyProc -> backendId == vxid .backendId );
43994399Assert (MyProc -> fpLocalTransactionId == InvalidLocalTransactionId );
@@ -4402,7 +4402,7 @@ VirtualXactLockTableInsert(VirtualTransactionId vxid)
44024402MyProc -> fpVXIDLock = true;
44034403MyProc -> fpLocalTransactionId = vxid .localTransactionId ;
44044404
4405- LWLockRelease (& MyProc -> backendLock );
4405+ LWLockRelease (& MyProc -> fpInfoLock );
44064406}
44074407
44084408/*
@@ -4422,14 +4422,14 @@ VirtualXactLockTableCleanup(void)
44224422/*
44234423 * Clean up shared memory state.
44244424 */
4425- LWLockAcquire (& MyProc -> backendLock ,LW_EXCLUSIVE );
4425+ LWLockAcquire (& MyProc -> fpInfoLock ,LW_EXCLUSIVE );
44264426
44274427fastpath = MyProc -> fpVXIDLock ;
44284428lxid = MyProc -> fpLocalTransactionId ;
44294429MyProc -> fpVXIDLock = false;
44304430MyProc -> fpLocalTransactionId = InvalidLocalTransactionId ;
44314431
4432- LWLockRelease (& MyProc -> backendLock );
4432+ LWLockRelease (& MyProc -> fpInfoLock );
44334433
44344434/*
44354435 * If fpVXIDLock has been cleared without touching fpLocalTransactionId,
@@ -4485,13 +4485,13 @@ VirtualXactLock(VirtualTransactionId vxid, bool wait)
44854485 * against the ones we're waiting for. The target backend will only set
44864486 * or clear lxid while holding this lock.
44874487 */
4488- LWLockAcquire (& proc -> backendLock ,LW_EXCLUSIVE );
4488+ LWLockAcquire (& proc -> fpInfoLock ,LW_EXCLUSIVE );
44894489
44904490/* If the transaction has ended, our work here is done. */
44914491if (proc -> backendId != vxid .backendId
44924492|| proc -> fpLocalTransactionId != vxid .localTransactionId )
44934493{
4494- LWLockRelease (& proc -> backendLock );
4494+ LWLockRelease (& proc -> fpInfoLock );
44954495return true;
44964496}
44974497
@@ -4501,7 +4501,7 @@ VirtualXactLock(VirtualTransactionId vxid, bool wait)
45014501 */
45024502if (!wait )
45034503{
4504- LWLockRelease (& proc -> backendLock );
4504+ LWLockRelease (& proc -> fpInfoLock );
45054505return false;
45064506}
45074507
@@ -4526,7 +4526,7 @@ VirtualXactLock(VirtualTransactionId vxid, bool wait)
45264526if (!proclock )
45274527{
45284528LWLockRelease (partitionLock );
4529- LWLockRelease (& proc -> backendLock );
4529+ LWLockRelease (& proc -> fpInfoLock );
45304530ereport (ERROR ,
45314531(errcode (ERRCODE_OUT_OF_MEMORY ),
45324532errmsg ("out of shared memory" ),
@@ -4540,7 +4540,7 @@ VirtualXactLock(VirtualTransactionId vxid, bool wait)
45404540}
45414541
45424542/* Done with proc->fpLockBits */
4543- LWLockRelease (& proc -> backendLock );
4543+ LWLockRelease (& proc -> fpInfoLock );
45444544
45454545/* Time to wait. */
45464546(void )LockAcquire (& tag ,ShareLock , false, false);