main(int argc, char **argv) { errcode_t retval; char *device_name; ext2_filsys fs; if (argc < 2) { fprintf(stderr, "Usage: %s filesystem\n", argv[0]); exit(1); } device_name = argv[1]; retval = ext2fs_open (device_name, EXT2_FLAG_RW, 0, 0, unix_io_manager, &fs); if (retval) { com_err(argv[0], retval, "while opening %s", device_name); exit(1); } retval = ext2fs_add_journal_inode(fs, 1024, 0); if (retval) { com_err(argv[0], retval, "while adding journal to %s", device_name); exit(1); } retval = ext2fs_flush(fs); if (retval) { printf("Warning, had trouble writing out superblocks.\n"); } ext2fs_close(fs); exit(0); }
void Ext3FS::addJournal(int size) { unsigned long journal_blocks; if(sb->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) return; // Create Journal inode journal_blocks = journalSize(size); ext2fs_add_journal_inode(fs, journal_blocks, 0); fs->flags &= ~EXT2_FLAG_SUPER_ONLY; }
void make_journal_blocks(ext2_filsys fs, int journal_size, int journal_flags, int quiet) { unsigned long journal_blocks; errcode_t retval; journal_blocks = figure_journal_size(journal_size, fs); if (!journal_blocks) { fs->super->s_feature_compat &= ~EXT3_FEATURE_COMPAT_HAS_JOURNAL; return; } if (!quiet) printf("Creating journal (%ld blocks): ", journal_blocks); fflush(stdout); retval = ext2fs_add_journal_inode(fs, journal_blocks, journal_flags); if (retval) bb_error_msg_and_die("can't create journal"); if (!quiet) puts("done"); }