]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
BufferAlloc() doesn't allocate write error buffers.
authorHiroshi Inoue <inoue@tpf.co.jp>
Fri, 29 Sep 2000 03:55:45 +0000 (03:55 +0000)
committerHiroshi Inoue <inoue@tpf.co.jp>
Fri, 29 Sep 2000 03:55:45 +0000 (03:55 +0000)
Remove compiler waring(my fault).

src/backend/storage/buffer/bufmgr.c

index 2324089e768ea1160451fd112e400d93d64bb0ea..24a70d618858d19d63a14991a23ac30628610bd5 100644 (file)
@@ -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 $
  *
  *-------------------------------------------------------------------------
  */
@@ -448,6 +448,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
@@ -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);