@@ -92,11 +92,11 @@ inteffective_io_concurrency = 0;
9292int target_prefetch_pages = 0 ;
9393
9494/* local state for StartBufferIO and related functions */
95- static volatile BufferDesc * InProgressBuf = NULL ;
95+ static BufferDesc * InProgressBuf = NULL ;
9696static bool IsForInput ;
9797
9898/* local state for LockBufferForCleanup */
99- static volatile BufferDesc * PinCountWaitBuf = NULL ;
99+ static BufferDesc * PinCountWaitBuf = NULL ;
100100
101101/*
102102 * Backend-Private refcount management:
@@ -395,24 +395,24 @@ static Buffer ReadBuffer_common(SMgrRelation reln, char relpersistence,
395395ForkNumber forkNum ,BlockNumber blockNum ,
396396ReadBufferMode mode ,BufferAccessStrategy strategy ,
397397bool * hit );
398- static bool PinBuffer (volatile BufferDesc * buf ,BufferAccessStrategy strategy );
399- static void PinBuffer_Locked (volatile BufferDesc * buf );
400- static void UnpinBuffer (volatile BufferDesc * buf ,bool fixOwner );
398+ static bool PinBuffer (BufferDesc * buf ,BufferAccessStrategy strategy );
399+ static void PinBuffer_Locked (BufferDesc * buf );
400+ static void UnpinBuffer (BufferDesc * buf ,bool fixOwner );
401401static void BufferSync (int flags );
402402static int SyncOneBuffer (int buf_id ,bool skip_recently_used );
403- static void WaitIO (volatile BufferDesc * buf );
404- static bool StartBufferIO (volatile BufferDesc * buf ,bool forInput );
405- static void TerminateBufferIO (volatile BufferDesc * buf ,bool clear_dirty ,
403+ static void WaitIO (BufferDesc * buf );
404+ static bool StartBufferIO (BufferDesc * buf ,bool forInput );
405+ static void TerminateBufferIO (BufferDesc * buf ,bool clear_dirty ,
406406int set_flag_bits );
407407static void shared_buffer_write_error_callback (void * arg );
408408static void local_buffer_write_error_callback (void * arg );
409- static volatile BufferDesc * BufferAlloc (SMgrRelation smgr ,
409+ static BufferDesc * BufferAlloc (SMgrRelation smgr ,
410410char relpersistence ,
411411ForkNumber forkNum ,
412412BlockNumber blockNum ,
413413BufferAccessStrategy strategy ,
414414bool * foundPtr );
415- static void FlushBuffer (volatile BufferDesc * buf ,SMgrRelation reln );
415+ static void FlushBuffer (BufferDesc * buf ,SMgrRelation reln );
416416static void AtProcExit_Buffers (int code ,Datum arg );
417417static void CheckForBufferLeaks (void );
418418static int rnode_comparator (const void * p1 ,const void * p2 );
@@ -663,7 +663,7 @@ ReadBuffer_common(SMgrRelation smgr, char relpersistence, ForkNumber forkNum,
663663BlockNumber blockNum ,ReadBufferMode mode ,
664664BufferAccessStrategy strategy ,bool * hit )
665665{
666- volatile BufferDesc * bufHdr ;
666+ BufferDesc * bufHdr ;
667667Block bufBlock ;
668668bool found ;
669669bool isExtend ;
@@ -927,7 +927,7 @@ ReadBuffer_common(SMgrRelation smgr, char relpersistence, ForkNumber forkNum,
927927 *
928928 * No locks are held either at entry or exit.
929929 */
930- static volatile BufferDesc *
930+ static BufferDesc *
931931BufferAlloc (SMgrRelation smgr ,char relpersistence ,ForkNumber forkNum ,
932932BlockNumber blockNum ,
933933BufferAccessStrategy strategy ,
@@ -941,7 +941,7 @@ BufferAlloc(SMgrRelation smgr, char relpersistence, ForkNumber forkNum,
941941LWLock * oldPartitionLock ;/* buffer partition lock for it */
942942BufFlags oldFlags ;
943943int buf_id ;
944- volatile BufferDesc * buf ;
944+ BufferDesc * buf ;
945945bool valid ;
946946
947947/* create a tag so we can lookup the buffer */
@@ -1281,7 +1281,7 @@ BufferAlloc(SMgrRelation smgr, char relpersistence, ForkNumber forkNum,
12811281 * to acquire the necessary locks; if so, don't mess it up.
12821282 */
12831283static void
1284- InvalidateBuffer (volatile BufferDesc * buf )
1284+ InvalidateBuffer (BufferDesc * buf )
12851285{
12861286BufferTag oldTag ;
12871287uint32 oldHash ;/* hash value for oldTag */
@@ -1380,7 +1380,7 @@ InvalidateBuffer(volatile BufferDesc *buf)
13801380void
13811381MarkBufferDirty (Buffer buffer )
13821382{
1383- volatile BufferDesc * bufHdr ;
1383+ BufferDesc * bufHdr ;
13841384
13851385if (!BufferIsValid (buffer ))
13861386elog (ERROR ,"bad buffer ID: %d" ,buffer );
@@ -1436,7 +1436,7 @@ ReleaseAndReadBuffer(Buffer buffer,
14361436BlockNumber blockNum )
14371437{
14381438ForkNumber forkNum = MAIN_FORKNUM ;
1439- volatile BufferDesc * bufHdr ;
1439+ BufferDesc * bufHdr ;
14401440
14411441if (BufferIsValid (buffer ))
14421442{
@@ -1485,7 +1485,7 @@ ReleaseAndReadBuffer(Buffer buffer,
14851485 * some callers to avoid an extra spinlock cycle.
14861486 */
14871487static bool
1488- PinBuffer (volatile BufferDesc * buf ,BufferAccessStrategy strategy )
1488+ PinBuffer (BufferDesc * buf ,BufferAccessStrategy strategy )
14891489{
14901490Buffer b = BufferDescriptorGetBuffer (buf );
14911491bool result ;
@@ -1547,7 +1547,7 @@ PinBuffer(volatile BufferDesc *buf, BufferAccessStrategy strategy)
15471547 * its state can change under us.
15481548 */
15491549static void
1550- PinBuffer_Locked (volatile BufferDesc * buf )
1550+ PinBuffer_Locked (BufferDesc * buf )
15511551{
15521552Buffer b ;
15531553PrivateRefCountEntry * ref ;
@@ -1578,7 +1578,7 @@ PinBuffer_Locked(volatile BufferDesc *buf)
15781578 * Those that don't should pass fixOwner = FALSE.
15791579 */
15801580static void
1581- UnpinBuffer (volatile BufferDesc * buf ,bool fixOwner )
1581+ UnpinBuffer (BufferDesc * buf ,bool fixOwner )
15821582{
15831583PrivateRefCountEntry * ref ;
15841584Buffer b = BufferDescriptorGetBuffer (buf );
@@ -1672,7 +1672,7 @@ BufferSync(int flags)
16721672num_to_write = 0 ;
16731673for (buf_id = 0 ;buf_id < NBuffers ;buf_id ++ )
16741674{
1675- volatile BufferDesc * bufHdr = GetBufferDescriptor (buf_id );
1675+ BufferDesc * bufHdr = GetBufferDescriptor (buf_id );
16761676
16771677/*
16781678 * Header spinlock is enough to examine BM_DIRTY, see comment in
@@ -1707,7 +1707,7 @@ BufferSync(int flags)
17071707num_written = 0 ;
17081708while (num_to_scan -- > 0 )
17091709{
1710- volatile BufferDesc * bufHdr = GetBufferDescriptor (buf_id );
1710+ BufferDesc * bufHdr = GetBufferDescriptor (buf_id );
17111711
17121712/*
17131713 * We don't need to acquire the lock here, because we're only looking
@@ -2079,7 +2079,7 @@ BgBufferSync(void)
20792079static int
20802080SyncOneBuffer (int buf_id ,bool skip_recently_used )
20812081{
2082- volatile BufferDesc * bufHdr = GetBufferDescriptor (buf_id );
2082+ BufferDesc * bufHdr = GetBufferDescriptor (buf_id );
20832083int result = 0 ;
20842084
20852085ReservePrivateRefCountEntry ();
@@ -2252,7 +2252,7 @@ CheckForBufferLeaks(void)
22522252void
22532253PrintBufferLeakWarning (Buffer buffer )
22542254{
2255- volatile BufferDesc * buf ;
2255+ BufferDesc * buf ;
22562256int32 loccount ;
22572257char * path ;
22582258BackendId backend ;
@@ -2324,7 +2324,7 @@ BufmgrCommit(void)
23242324BlockNumber
23252325BufferGetBlockNumber (Buffer buffer )
23262326{
2327- volatile BufferDesc * bufHdr ;
2327+ BufferDesc * bufHdr ;
23282328
23292329Assert (BufferIsPinned (buffer ));
23302330
@@ -2346,7 +2346,7 @@ void
23462346BufferGetTag (Buffer buffer ,RelFileNode * rnode ,ForkNumber * forknum ,
23472347BlockNumber * blknum )
23482348{
2349- volatile BufferDesc * bufHdr ;
2349+ BufferDesc * bufHdr ;
23502350
23512351/* Do the same checks as BufferGetBlockNumber. */
23522352Assert (BufferIsPinned (buffer ));
@@ -2382,7 +2382,7 @@ BufferGetTag(Buffer buffer, RelFileNode *rnode, ForkNumber *forknum,
23822382 * as the second parameter. If not, pass NULL.
23832383 */
23842384static void
2385- FlushBuffer (volatile BufferDesc * buf ,SMgrRelation reln )
2385+ FlushBuffer (BufferDesc * buf ,SMgrRelation reln )
23862386{
23872387XLogRecPtr recptr ;
23882388ErrorContextCallback errcallback ;
@@ -2520,7 +2520,7 @@ RelationGetNumberOfBlocksInFork(Relation relation, ForkNumber forkNum)
25202520bool
25212521BufferIsPermanent (Buffer buffer )
25222522{
2523- volatile BufferDesc * bufHdr ;
2523+ BufferDesc * bufHdr ;
25242524
25252525/* Local buffers are used only for temp relations. */
25262526if (BufferIsLocal (buffer ))
@@ -2550,7 +2550,7 @@ BufferIsPermanent(Buffer buffer)
25502550XLogRecPtr
25512551BufferGetLSNAtomic (Buffer buffer )
25522552{
2553- volatile BufferDesc * bufHdr = GetBufferDescriptor (buffer - 1 );
2553+ BufferDesc * bufHdr = GetBufferDescriptor (buffer - 1 );
25542554char * page = BufferGetPage (buffer );
25552555XLogRecPtr lsn ;
25562556
@@ -2613,7 +2613,7 @@ DropRelFileNodeBuffers(RelFileNodeBackend rnode, ForkNumber forkNum,
26132613
26142614for (i = 0 ;i < NBuffers ;i ++ )
26152615{
2616- volatile BufferDesc * bufHdr = GetBufferDescriptor (i );
2616+ BufferDesc * bufHdr = GetBufferDescriptor (i );
26172617
26182618/*
26192619 * We can make this a tad faster by prechecking the buffer tag before
@@ -2703,7 +2703,7 @@ DropRelFileNodesAllBuffers(RelFileNodeBackend *rnodes, int nnodes)
27032703for (i = 0 ;i < NBuffers ;i ++ )
27042704{
27052705RelFileNode * rnode = NULL ;
2706- volatile BufferDesc * bufHdr = GetBufferDescriptor (i );
2706+ BufferDesc * bufHdr = GetBufferDescriptor (i );
27072707
27082708/*
27092709 * As in DropRelFileNodeBuffers, an unlocked precheck should be safe
@@ -2767,7 +2767,7 @@ DropDatabaseBuffers(Oid dbid)
27672767
27682768for (i = 0 ;i < NBuffers ;i ++ )
27692769{
2770- volatile BufferDesc * bufHdr = GetBufferDescriptor (i );
2770+ BufferDesc * bufHdr = GetBufferDescriptor (i );
27712771
27722772/*
27732773 * As in DropRelFileNodeBuffers, an unlocked precheck should be safe
@@ -2799,7 +2799,7 @@ PrintBufferDescs(void)
27992799
28002800for (i = 0 ;i < NBuffers ;++ i )
28012801{
2802- volatile BufferDesc * buf = GetBufferDescriptor (i );
2802+ BufferDesc * buf = GetBufferDescriptor (i );
28032803Buffer b = BufferDescriptorGetBuffer (buf );
28042804
28052805/* theoretically we should lock the bufhdr here */
@@ -2822,7 +2822,7 @@ PrintPinnedBufs(void)
28222822
28232823for (i = 0 ;i < NBuffers ;++ i )
28242824{
2825- volatile BufferDesc * buf = GetBufferDescriptor (i );
2825+ BufferDesc * buf = GetBufferDescriptor (i );
28262826Buffer b = BufferDescriptorGetBuffer (buf );
28272827
28282828if (GetPrivateRefCount (b )> 0 )
@@ -2863,7 +2863,7 @@ void
28632863FlushRelationBuffers (Relation rel )
28642864{
28652865int i ;
2866- volatile BufferDesc * bufHdr ;
2866+ BufferDesc * bufHdr ;
28672867
28682868/* Open rel at the smgr level if not already done */
28692869RelationOpenSmgr (rel );
@@ -2955,7 +2955,7 @@ void
29552955FlushDatabaseBuffers (Oid dbid )
29562956{
29572957int i ;
2958- volatile BufferDesc * bufHdr ;
2958+ BufferDesc * bufHdr ;
29592959
29602960/* Make sure we can handle the pin inside the loop */
29612961ResourceOwnerEnlargeBuffers (CurrentResourceOwner );
@@ -3064,7 +3064,7 @@ IncrBufferRefCount(Buffer buffer)
30643064void
30653065MarkBufferDirtyHint (Buffer buffer ,bool buffer_std )
30663066{
3067- volatile BufferDesc * bufHdr ;
3067+ BufferDesc * bufHdr ;
30683068Page page = BufferGetPage (buffer );
30693069
30703070if (!BufferIsValid (buffer ))
@@ -3198,7 +3198,7 @@ MarkBufferDirtyHint(Buffer buffer, bool buffer_std)
31983198void
31993199UnlockBuffers (void )
32003200{
3201- volatile BufferDesc * buf = PinCountWaitBuf ;
3201+ BufferDesc * buf = PinCountWaitBuf ;
32023202
32033203if (buf )
32043204{
@@ -3224,7 +3224,7 @@ UnlockBuffers(void)
32243224void
32253225LockBuffer (Buffer buffer ,int mode )
32263226{
3227- volatile BufferDesc * buf ;
3227+ BufferDesc * buf ;
32283228
32293229Assert (BufferIsValid (buffer ));
32303230if (BufferIsLocal (buffer ))
@@ -3250,7 +3250,7 @@ LockBuffer(Buffer buffer, int mode)
32503250bool
32513251ConditionalLockBuffer (Buffer buffer )
32523252{
3253- volatile BufferDesc * buf ;
3253+ BufferDesc * buf ;
32543254
32553255Assert (BufferIsValid (buffer ));
32563256if (BufferIsLocal (buffer ))
@@ -3280,7 +3280,7 @@ ConditionalLockBuffer(Buffer buffer)
32803280void
32813281LockBufferForCleanup (Buffer buffer )
32823282{
3283- volatile BufferDesc * bufHdr ;
3283+ BufferDesc * bufHdr ;
32843284
32853285Assert (BufferIsValid (buffer ));
32863286Assert (PinCountWaitBuf == NULL );
@@ -3392,7 +3392,7 @@ HoldingBufferPinThatDelaysRecovery(void)
33923392bool
33933393ConditionalLockBufferForCleanup (Buffer buffer )
33943394{
3395- volatile BufferDesc * bufHdr ;
3395+ BufferDesc * bufHdr ;
33963396
33973397Assert (BufferIsValid (buffer ));
33983398
@@ -3445,7 +3445,7 @@ ConditionalLockBufferForCleanup(Buffer buffer)
34453445 * WaitIO -- Block until the IO_IN_PROGRESS flag on 'buf' is cleared.
34463446 */
34473447static void
3448- WaitIO (volatile BufferDesc * buf )
3448+ WaitIO (BufferDesc * buf )
34493449{
34503450/*
34513451 * Changed to wait until there's no IO - Inoue 01/13/2000
@@ -3492,7 +3492,7 @@ WaitIO(volatile BufferDesc *buf)
34923492 * FALSE if someone else already did the work.
34933493 */
34943494static bool
3495- StartBufferIO (volatile BufferDesc * buf ,bool forInput )
3495+ StartBufferIO (BufferDesc * buf ,bool forInput )
34963496{
34973497Assert (!InProgressBuf );
34983498
@@ -3558,8 +3558,7 @@ StartBufferIO(volatile BufferDesc *buf, bool forInput)
35583558 * be 0, or BM_VALID if we just finished reading in the page.
35593559 */
35603560static void
3561- TerminateBufferIO (volatile BufferDesc * buf ,bool clear_dirty ,
3562- int set_flag_bits )
3561+ TerminateBufferIO (BufferDesc * buf ,bool clear_dirty ,int set_flag_bits )
35633562{
35643563Assert (buf == InProgressBuf );
35653564
@@ -3590,7 +3589,7 @@ TerminateBufferIO(volatile BufferDesc *buf, bool clear_dirty,
35903589void
35913590AbortBufferIO (void )
35923591{
3593- volatile BufferDesc * buf = InProgressBuf ;
3592+ BufferDesc * buf = InProgressBuf ;
35943593
35953594if (buf )
35963595{
@@ -3643,7 +3642,7 @@ AbortBufferIO(void)
36433642static void
36443643shared_buffer_write_error_callback (void * arg )
36453644{
3646- volatile BufferDesc * bufHdr = (volatile BufferDesc * )arg ;
3645+ BufferDesc * bufHdr = (BufferDesc * )arg ;
36473646
36483647/* Buffer is pinned, so we can read the tag without locking the spinlock */
36493648if (bufHdr != NULL )
@@ -3662,7 +3661,7 @@ shared_buffer_write_error_callback(void *arg)
36623661static void
36633662local_buffer_write_error_callback (void * arg )
36643663{
3665- volatile BufferDesc * bufHdr = (volatile BufferDesc * )arg ;
3664+ BufferDesc * bufHdr = (BufferDesc * )arg ;
36663665
36673666if (bufHdr != NULL )
36683667{