From 5f18e2183e465b7a1616d1955839d8c51dbd8c87 Mon Sep 17 00:00:00 2001 From: Hiroshi Inoue Date: Fri, 29 Sep 2000 03:55:45 +0000 Subject: [PATCH] BufferAlloc() doesn't allocate write error buffers. Remove compiler waring(my fault). --- src/backend/storage/buffer/bufmgr.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index 2324089e76..24a70d6188 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.84 2000/09/29 01:23:47 inoue Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.85 2000/09/29 03:55:45 inoue Exp $ * *------------------------------------------------------------------------- */ @@ -449,6 +449,16 @@ BufferAlloc(Relation reln, bool smok; /* + * skip write error buffers + */ + if ((buf->flags & BM_IO_ERROR) != 0) + { + PrivateRefCount[BufferDescriptorGetBuffer(buf) - 1] = 0; + buf->refcount--; + buf = (BufferDesc *) NULL; + continue; + } + /* * Set BM_IO_IN_PROGRESS to keep anyone from doing anything * with the contents of the buffer while we write it out. We * don't really care if they try to read it, but if they can @@ -2529,7 +2539,7 @@ AbortBufferIO(void) else { Assert((buf->flags & BM_DIRTY) != 0); - if (buf->flags & BM_IO_ERROR != 0) + if ((buf->flags & BM_IO_ERROR) != 0) { elog(NOTICE, "write error may be permanent: cannot write block %u for %s/%s", buf->tag.blockNum, buf->blind.dbname, buf->blind.relname); -- 2.11.0