|
7 | 7 | *
|
8 | 8 | *
|
9 | 9 | * IDENTIFICATION
|
10 |
| - * $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.26 1997/09/22 07:13:56 vadim Exp $ |
| 10 | + * $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.27 1997/10/12 07:12:02 vadim Exp $ |
11 | 11 | *
|
12 | 12 | *-------------------------------------------------------------------------
|
13 | 13 | */
|
@@ -832,6 +832,8 @@ FlushBuffer(Buffer buffer, bool release)
|
832 | 832 |
|
833 | 833 | status = smgrflush(bufHdr->bufsmgr, bufrel, bufHdr->tag.blockNum,
|
834 | 834 | (char *) MAKE_PTR(bufHdr->data));
|
| 835 | + |
| 836 | + RelationDecrementReferenceCount(bufrel); |
835 | 837 |
|
836 | 838 | if (status == SM_FAIL)
|
837 | 839 | {
|
@@ -1065,15 +1067,8 @@ BufferSync()
|
1065 | 1067 | * were flushing it out we must not clear DIRTY flag -
|
1066 | 1068 | * vadim 01/17/97
|
1067 | 1069 | */
|
1068 |
| - if (bufHdr->flags & BM_JUST_DIRTIED) |
1069 |
| - { |
1070 |
| - elog(NOTICE, "BufferSync: content of block %u (%s) changed while flushing", |
1071 |
| - bufHdr->tag.blockNum, bufHdr->sb_relname); |
1072 |
| - } |
1073 |
| - else |
1074 |
| - { |
| 1070 | + if (!(bufHdr->flags & BM_JUST_DIRTIED)) |
1075 | 1071 | bufHdr->flags &= ~BM_DIRTY;
|
1076 |
| - } |
1077 | 1072 | if (reln != (Relation) NULL)
|
1078 | 1073 | RelationDecrementReferenceCount(reln);
|
1079 | 1074 | }
|
@@ -1392,6 +1387,9 @@ BufferReplace(BufferDesc *bufHdr, bool bufferLockHeld)
|
1392 | 1387 | bufHdr->tag.blockNum,
|
1393 | 1388 | (char *) MAKE_PTR(bufHdr->data));
|
1394 | 1389 | }
|
| 1390 | + |
| 1391 | + if (reln != (Relation) NULL) |
| 1392 | + RelationDecrementReferenceCount(reln); |
1395 | 1393 |
|
1396 | 1394 | if (status == SM_FAIL)
|
1397 | 1395 | return (FALSE);
|
|
0 commit comments