Description of problem:
fsync() on a ext3 filesystem does not flush disk caches. This influences
data consistency, especially for database system like MySQL and PostgreSQL.
This bug has been fixed in kernel patch 2.6.31 via
Author: Jan Kara <firstname.lastname@example.org>
Date: Tue Sep 8 14:59:42 2009 +0200
ext3: Flush disk caches on fsync when needed
In case we fsync() a file and inode is not dirty, we don't force a transaction
to disk and hence don't flush disk caches. Thus file data could be just in disk
caches and not on persistent storage. Fix the problem by flushing disk caches
if we didn't force a transaction commit.
It would be great if this important fix could be integrated into the
RHEL 5.x kernel line (2.6.18) and made available in the next kernel
Agreed, we should probably have this.
Note that the behavior is only in effect if barriers are turned on, which is still not the default upstream or in rhel5.
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release. Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products. This request is not yet committed for inclusion in an Update
You can download this test kernel from http://people.redhat.com/jwilson/el5
Detailed testing feedback is always welcomed.
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.