*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.220 2007/05/30 20:11:58 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.221 2007/06/18 00:47:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
* We get here only in the corner case where we are trying to extend
* the relation but we found a pre-existing buffer marked BM_VALID.
* This can happen because mdread doesn't complain about reads beyond
- * EOF --- which is arguably bogus, but changing it seems tricky ---
- * and so a previous attempt to read a block just beyond EOF could
- * have left a "valid" zero-filled buffer. Unfortunately, we have
- * also seen this case occurring because of buggy Linux kernels that
- * sometimes return an lseek(SEEK_END) result that doesn't account for
- * a recent write. In that situation, the pre-existing buffer would
- * contain valid data that we don't want to overwrite. Since the
- * legitimate cases should always have left a zero-filled buffer,
- * complain if not PageIsNew.
+ * EOF (when zero_damaged_pages is ON) and so a previous attempt to
+ * read a block beyond EOF could have left a "valid" zero-filled
+ * buffer. Unfortunately, we have also seen this case occurring
+ * because of buggy Linux kernels that sometimes return an
+ * lseek(SEEK_END) result that doesn't account for a recent write.
+ * In that situation, the pre-existing buffer would contain valid data
+ * that we don't want to overwrite. Since the legitimate case should
+ * always have left a zero-filled buffer, complain if not PageIsNew.
*/
bufBlock = isLocalBuf ? LocalBufHdrGetBlock(bufHdr) : BufHdrGetBlock(bufHdr);
if (!PageIsNew((PageHeader) bufBlock))