From b00c2c1d3fa0f5e0cef88743d1243d8c4a857e6d Mon Sep 17 00:00:00 2001
From: "Vadim B. Mikheev" <vadim4o@yahoo.com>
Date: Thu, 16 Jan 1997 08:13:14 +0000
Subject: [PATCH] FlushLocalBuffer () releases buffer only if required by
 caller.

---
 src/backend/storage/buffer/localbuf.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/backend/storage/buffer/localbuf.c b/src/backend/storage/buffer/localbuf.c
index 30943e68b38..cd2476b6e87 100644
--- a/src/backend/storage/buffer/localbuf.c
+++ b/src/backend/storage/buffer/localbuf.c
@@ -15,7 +15,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/storage/buffer/localbuf.c,v 1.4 1996/11/10 03:02:18 momjian Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/storage/buffer/localbuf.c,v 1.5 1997/01/16 08:13:14 vadim Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -172,7 +172,7 @@ WriteLocalBuffer(Buffer buffer, bool release)
  *    flushes a local buffer
  */
 int
-FlushLocalBuffer(Buffer buffer)
+FlushLocalBuffer(Buffer buffer, bool release)
 {
     int bufid;
     Relation bufrel;
@@ -194,7 +194,8 @@ FlushLocalBuffer(Buffer buffer)
 	      (char *) MAKE_PTR(bufHdr->data));
 
     Assert(LocalRefCount[bufid] > 0);
-    LocalRefCount[bufid]--;
+    if ( release )
+    	LocalRefCount[bufid]--;
     
     return true;
 }
-- 
GitLab