*
* The downside of allocating a very large initial disk is that the
* fixed overhead of ext2 is larger (since ext2 calculates it based on
- * the size of the disk). For a 1GB disk the overhead is
- * approximately 16MB.
+ * the size of the disk). For a 4GB disk the overhead is
+ * approximately 66MB.
*
* In future, make this configurable, or determine it from the input
* files (XXX).
*/
-#define APPLIANCE_SIZE (1024*1024*1024)
+#define APPLIANCE_SIZE ((off_t)4*1024*1024*1024)
static void
ext2_start (const char *hostcpu, const char *appliance,
if (fd == -1)
error (EXIT_FAILURE, errno, "open: %s", appliance);
- if (lseek (fd, APPLIANCE_SIZE - 1, SEEK_SET) == -1)
+ if (lseek (fd, APPLIANCE_SIZE - 1, SEEK_SET) == (off_t) -1)
error (EXIT_FAILURE, errno, "lseek");
char c = 0;
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));
}