summaryrefslogtreecommitdiffstats
path: root/helper
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2011-09-23 11:25:27 +0100
committerRichard W.M. Jones <rjones@redhat.com>2011-09-24 18:19:46 +0100
commite576d2ec46adefa14b2d9c3d51e7f19a7810f909 (patch)
treec52616ebd896459d83e7724e990a7b1440704e52 /helper
parentb8cea4656e5bf1b9e7bb2274ef968ea42b10e0df (diff)
downloadfebootstrap-e576d2ec46adefa14b2d9c3d51e7f19a7810f909.tar.gz
febootstrap-e576d2ec46adefa14b2d9c3d51e7f19a7810f909.tar.xz
febootstrap-e576d2ec46adefa14b2d9c3d51e7f19a7810f909.zip
Use ext2fs_close2 API if available to avoid unnecessary fsync.
This saves over 5 seconds during the slow path construction of the appliance. The ext2fs_close2 API is present in the e2fsprogs 'next' branch and will be in a later e2fsprogs release (thanks Ted Ts'o).
Diffstat (limited to 'helper')
-rw-r--r--helper/ext2.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/helper/ext2.c b/helper/ext2.c
index 2395871..56ad5e5 100644
--- a/helper/ext2.c
+++ b/helper/ext2.c
@@ -107,8 +107,16 @@ ext2_start (const char *hostcpu, const char *appliance,
static void
ext2_end (void)
{
+ if (verbose)
+ print_timestamped_message ("closing ext2 filesystem");
+
/* Write out changes and close. */
- errcode_t err = ext2fs_close (fs);
+ errcode_t err;
+#ifdef HAVE_EXT2FS_CLOSE2
+ err = ext2fs_close2 (fs, EXT2_FLAG_FLUSH_NO_SYNC);
+#else
+ err = ext2fs_close (fs);
+#endif
if (err != 0)
error (EXIT_FAILURE, 0, "ext2fs_close: %s", error_message (err));
}