In BufferSync(), we have this:
/* * Unless this is a shutdown checkpoint, we write only permanent, dirty * buffers. But at shutdown time, we write all dirty buffers. */ if (!(flags & CHECKPOINT_IS_SHUTDOWN)) flags |= BM_PERMANENT;
That seems bogus to me. We're mixing CHECKPOINT_* flags and buffer BM_* flags in the same variable. Furthermore, we only use that flags variable to pass it down to CheckpointWriteDelay(), which only pays attention to CHECKPOINT_IMMEDIATE flag. The intention was probably to do "mask |= BM_PERMANENT" ?
-- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers