From: Vadim B. Mikheev Date: Thu, 16 Jan 1997 08:13:14 +0000 (+0000) Subject: FlushLocalBuffer () releases buffer only if required X-Git-Tag: REL6_1~711 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b00c2c1d3fa0f5e0cef88743d1243d8c4a857e6d;p=thirdparty%2Fpostgresql.git FlushLocalBuffer () releases buffer only if required by caller. --- 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; }