+ fprintf(stderr, _("Warning: could not erase sector %d: %s\n"),
+ sect, error_message(retval));
+}
+
+static void create_journal_dev(ext2_filsys fs)
+{
+ struct progress_struct progress;
+ errcode_t retval;
+ char *buf;
+ blk_t blk;
+ int count;
+
+ retval = ext2fs_create_journal_superblock(fs,
+ fs->super->s_blocks_count, 0, &buf);
+ if (retval) {
+ com_err("create_journal_dev", retval,
+ _("while initializing journal superblock"));
+ exit(1);
+ }
+ if (quiet)
+ memset(&progress, 0, sizeof(progress));
+ else
+ progress_init(&progress, _("Zeroing journal device: "),
+ fs->super->s_blocks_count);
+
+ retval = zero_blocks(fs, 0, fs->super->s_blocks_count,
+ &progress, &blk, &count);
+ if (retval) {
+ com_err("create_journal_dev", retval,
+ _("while zeroing journal device (block %u, count %d)"),
+ blk, count);
+ exit(1);
+ }
+ zero_blocks(0, 0, 0, 0, 0, 0);
+
+ retval = io_channel_write_blk(fs->io,
+ fs->super->s_first_data_block+1,
+ 1, buf);
+ if (retval) {
+ com_err("create_journal_dev", retval,
+ _("while writing journal superblock"));
+ exit(1);
+ }
+ progress_close(&progress);