FlushLocalBuffer () releases buffer only if required
authorVadim B. Mikheev
Thu, 16 Jan 1997 08:13:14 +0000 (08:13 +0000)
committerVadim B. Mikheev
Thu, 16 Jan 1997 08:13:14 +0000 (08:13 +0000)
by caller.

src/backend/storage/buffer/localbuf.c

index 30943e68b3812e43c858a3f9a8b6386a29534ee0..cd2476b6e871a2b94a2d335f6c863ba39388193c 100644 (file)
@@ -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;
 }