@@ -653,15 +653,19 @@ rumbuild(Relation heap, Relation index, struct IndexInfo *indexInfo)
653
653
*/
654
654
for (blkno = 0 ;blkno < buildstate .buildStats .nTotalPages ;blkno ++ )
655
655
{
656
- Buffer buffer = ReadBuffer (index ,blkno );
657
- GenericXLogState * state = RumGenericXLogStart (index ,
658
- buildstate .rumstate .isBuild );
656
+ Buffer buffer ;
657
+ GenericXLogState * state ;
659
658
660
- RumGenericXLogRegisterBuffer (state ,buffer ,GENERIC_XLOG_FULL_IMAGE ,
661
- buildstate .rumstate .isBuild );
662
- RumGenericXLogFinish (state ,buildstate .rumstate .isBuild );
659
+ CHECK_FOR_INTERRUPTS ();
660
+
661
+ buffer = ReadBuffer (index ,blkno );
662
+ LockBuffer (buffer ,RUM_SHARE );
663
+
664
+ state = GenericXLogStart (index );
665
+ GenericXLogRegisterBuffer (state ,buffer ,GENERIC_XLOG_FULL_IMAGE );
666
+ GenericXLogFinish (state );
663
667
664
- ReleaseBuffer (buffer );
668
+ UnlockReleaseBuffer (buffer );
665
669
}
666
670
667
671
/*
@@ -685,7 +689,7 @@ rumbuildempty(Relation index)
685
689
MetaBuffer ;
686
690
GenericXLogState * state ;
687
691
688
- state = RumGenericXLogStart (index , false );
692
+ state = GenericXLogStart (index );
689
693
690
694
/* An empty RUM index has two pages. */
691
695
MetaBuffer =
@@ -699,7 +703,7 @@ rumbuildempty(Relation index)
699
703
RumInitMetabuffer (state ,MetaBuffer , false);
700
704
RumInitBuffer (state ,RootBuffer ,RUM_LEAF , false);
701
705
702
- RumGenericXLogFinish (state , false );
706
+ GenericXLogFinish (state );
703
707
704
708
/* Unlock and release the buffers. */
705
709
UnlockReleaseBuffer (MetaBuffer );