void e2fsck_write_bitmaps(e2fsck_t ctx) { ext2_filsys fs = ctx->fs; errcode_t retval; if (ext2fs_test_bb_dirty(fs)) { ehandler_operation(_("writing block bitmaps")); retval = ext2fs_write_block_bitmap(fs); ehandler_operation(0); if (retval) { com_err(ctx->program_name, retval, _("while retrying to write block bitmaps for %s"), ctx->device_name); fatal_error(ctx, 0); } } if (ext2fs_test_ib_dirty(fs)) { ehandler_operation(_("writing inode bitmaps")); retval = ext2fs_write_inode_bitmap(fs); ehandler_operation(0); if (retval) { com_err(ctx->program_name, retval, _("while retrying to write inode bitmaps for %s"), ctx->device_name); fatal_error(ctx, 0); } } }
errcode_t ext2fs_write_bitmaps(ext2_filsys fs) { errcode_t retval; EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS); if (fs->block_map && ext2fs_test_bb_dirty(fs)) { retval = ext2fs_write_block_bitmap(fs); if (retval) return retval; } if (fs->inode_map && ext2fs_test_ib_dirty(fs)) { retval = ext2fs_write_inode_bitmap(fs); if (retval) return retval; } return 0; }
static void close_filesystem(NOARGS) { int retval; if (current_fs->flags & EXT2_FLAG_IB_DIRTY) { retval = ext2fs_write_inode_bitmap(current_fs); if (retval) com_err("ext2fs_write_inode_bitmap", retval, 0); } if (current_fs->flags & EXT2_FLAG_BB_DIRTY) { retval = ext2fs_write_block_bitmap(current_fs); if (retval) com_err("ext2fs_write_block_bitmap", retval, 0); } retval = ext2fs_close(current_fs); if (retval) com_err("ext2fs_close", retval, 0); current_fs = NULL; return; }