1212 *
1313 *
1414 * IDENTIFICATION
15- * $PostgreSQL: pgsql/src/backend/storage/buffer/freelist.c,v 1.44 2004/06/03 02:08:03 tgl Exp $
15+ * $PostgreSQL: pgsql/src/backend/storage/buffer/freelist.c,v 1.45 2004/06/11 17:20:39 tgl Exp $
1616 *
1717 *-------------------------------------------------------------------------
1818 */
@@ -709,6 +709,7 @@ StrategyInvalidateBuffer(BufferDesc *buf)
709709 */
710710CLEAR_BUFFERTAG (buf -> tag );
711711buf -> flags &= ~(BM_VALID |BM_DIRTY );
712+ buf -> cntxDirty = false;
712713buf -> bufNext = StrategyControl -> listFreeBuffers ;
713714StrategyControl -> listFreeBuffers = buf -> buf_id ;
714715}
@@ -757,8 +758,7 @@ StrategyDirtyBufferList(BufferDesc **buffers, BufferTag *buftags,
757758cdb_id_t1 = StrategyControl -> listHead [STRAT_LIST_T1 ];
758759cdb_id_t2 = StrategyControl -> listHead [STRAT_LIST_T2 ];
759760
760- while ((cdb_id_t1 >=0 || cdb_id_t2 >=0 )&&
761- num_buffer_dirty < max_buffers )
761+ while (cdb_id_t1 >=0 || cdb_id_t2 >=0 )
762762{
763763if (cdb_id_t1 >=0 )
764764{
@@ -772,6 +772,8 @@ StrategyDirtyBufferList(BufferDesc **buffers, BufferTag *buftags,
772772buffers [num_buffer_dirty ]= buf ;
773773buftags [num_buffer_dirty ]= buf -> tag ;
774774num_buffer_dirty ++ ;
775+ if (num_buffer_dirty >=max_buffers )
776+ break ;
775777}
776778}
777779
@@ -790,6 +792,8 @@ StrategyDirtyBufferList(BufferDesc **buffers, BufferTag *buftags,
790792buffers [num_buffer_dirty ]= buf ;
791793buftags [num_buffer_dirty ]= buf -> tag ;
792794num_buffer_dirty ++ ;
795+ if (num_buffer_dirty >=max_buffers )
796+ break ;
793797}
794798}
795799