]> granicus.if.org Git - postgresql/commit
Recursively fsync() the data directory after a crash.
authorRobert Haas <rhaas@postgresql.org>
Mon, 4 May 2015 18:13:53 +0000 (14:13 -0400)
committerRobert Haas <rhaas@postgresql.org>
Mon, 4 May 2015 18:19:32 +0000 (14:19 -0400)
commitd8ac77ab178ddb2ae043b8c463cd30c031e793d0
tree92a36e156882232aaf6dbe7705d7ad022928130a
parent997066f4456c0fc582e62a50e296c77360212049
Recursively fsync() the data directory after a crash.

Otherwise, if there's another crash, some writes from after the first
crash might make it to disk while writes from before the crash fail
to make it to disk.  This could lead to data corruption.

Back-patch to all supported versions.

Abhijit Menon-Sen, reviewed by Andres Freund and slightly revised
by me.
src/backend/access/transam/xlog.c
src/backend/storage/file/fd.c
src/include/storage/fd.h