Index: src/backend/access/transam/xlog.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/access/transam/xlog.c,v
retrieving revision 1.258
diff -c -r1.258 xlog.c
*** src/backend/access/transam/xlog.c	30 Nov 2006 18:29:11 -0000	1.258
--- src/backend/access/transam/xlog.c	5 Dec 2006 19:44:42 -0000
***************
*** 1545,1554 ****
  				(ControlFile->logId == openLogId &&
  				 ControlFile->logSeg < openLogSeg + 1))
  			{
  				ControlFile->logId = openLogId;
  				ControlFile->logSeg = openLogSeg + 1;
  				ControlFile->time = time(NULL);
- 				UpdateControlFile();
  
  				/*
  				 * Signal bgwriter to start a checkpoint if it's been too long
--- 1545,1560 ----
  				(ControlFile->logId == openLogId &&
  				 ControlFile->logSeg < openLogSeg + 1))
  			{
+                 /*
+                  * We update shared memory, but not the control file on disk
+                  * This allows us to keep track of whether to checkpoint
+                  * without needing to pay the cost of fsyncing files.
+                  * We do update it at checkpoint time however, but that
+                  * part is handled by the bgwriter in CreateCheckpoint()
+                  */
  				ControlFile->logId = openLogId;
  				ControlFile->logSeg = openLogSeg + 1;
  				ControlFile->time = time(NULL);
  
  				/*
  				 * Signal bgwriter to start a checkpoint if it's been too long
