Message ID | 20170607133114.27799-1-jack@suse.cz |
---|---|
State | Accepted, archived |
Headers | show |
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 --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
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(+)