AFAICS that could be easily avoided by doing a simple PageGetLSN() like we used to, if checksums are not enabled. In XLogCheckBuffer:
/* * XXX We assume page LSN is first data on *every* page that can be passed * to XLogInsert, whether it otherwise has the standard page layout or * not. We don't need the buffer header lock for PageGetLSN because we * have exclusive lock on the page and/or the relation. */ *lsn = BufferGetLSNAtomic(rdata->buffer);
Also, the second sentence in the above comment is completely bogus now.