*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
{
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
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);