summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2012-01-06 08:32:32 -0500
committerRobert Haas <rhaas@postgresql.org>2012-01-06 08:35:48 -0500
commit7e4911b2ae33acff7b85234b91372133ec6df9d4 (patch)
treed6f62786b6574eb0de4ee4aa116c467ae906e084
parentbd0e74a9ce98c65c94565fb603dcc7b710cd4227 (diff)
Fix variable confusion in BufferSync().
As noted by Heikki Linnakangas, the previous coding confused the "flags" variable with the "mask" variable. The affect of this appears to be that unlogged buffers would get written out at every checkpoint rather than only at shutdown time. Although that's arguably an acceptable failure mode, I'm back-patching this change, since it seems like a poor idea to rely on this happening to work.
-rw-r--r--src/backend/storage/buffer/bufmgr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
index 91cc001b503..8f68bcc66d9 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -1191,7 +1191,7 @@ BufferSync(int flags)
* buffers. But at shutdown time, we write all dirty buffers.
*/
if (!(flags & CHECKPOINT_IS_SHUTDOWN))
- flags |= BM_PERMANENT;
+ mask |= BM_PERMANENT;
/*
* Loop over all buffers, and mark the ones that need to be written with