diff mbox

libext2fs: Fix fsync(2) detection

Message ID 20170607133114.27799-1-jack@suse.cz
State Accepted, archived
Headers show

Commit Message

Jan Kara June 7, 2017, 1:31 p.m. UTC
For some reason lib/config.h.in was missing a definition of HAVE_FSYNC
and as a result lib/config.h never had HAVE_FSYNC defined. As a result
we never called fsync(2) for example from
lib/ext2fs/unix_io.c:unix_flush() when we finished creating filesystem
and could miss IO errors happening during creating of the filesystem.
Test generic/405 exposes this problem.

Fix the problem by defining HAVE_FSYNC in lib/config.h.in.

Signed-off-by: Jan Kara <jack@suse.cz>
---
 lib/config.h.in | 3 +++
 1 file changed, 3 insertions(+)

Comments

Theodore Ts'o June 8, 2017, 4:04 p.m. UTC | #1
On Wed, Jun 07, 2017 at 03:31:14PM +0200, Jan Kara wrote:
> For some reason lib/config.h.in was missing a definition of HAVE_FSYNC
> and as a result lib/config.h never had HAVE_FSYNC defined. As a result
> we never called fsync(2) for example from
> lib/ext2fs/unix_io.c:unix_flush() when we finished creating filesystem
> and could miss IO errors happening during creating of the filesystem.
> Test generic/405 exposes this problem.
> 
> Fix the problem by defining HAVE_FSYNC in lib/config.h.in.
> 
> Signed-off-by: Jan Kara <jack@suse.cz>

Thanks for tracking down this regression.  This bug was introduced by
my cherry-picking in changes from the Android AOSP version of
e2fsprogs a few weeks ago.  I was wondering why generic/405 had
regressed.

Thanks, applied.

					- Ted
diff mbox

Patch

diff --git a/lib/config.h.in b/lib/config.h.in
index 37d0c461338a..91e869e7d3d7 100644
--- a/lib/config.h.in
+++ b/lib/config.h.in
@@ -470,6 +470,9 @@ 
 /* Define to 1 if you have the `sync_file_range' function. */
 #undef HAVE_SYNC_FILE_RANGE
 
+/* Define to 1 if you have the 'fsync' function. */
+#undef HAVE_FSYNC
+
 /* Define to 1 if you have the `sysconf' function. */
 #undef HAVE_SYSCONF