void dm_exit(void) { if (_dm_use_count && (!--_dm_use_count)) { log_dbg("Releasing device-mapper backend."); dm_log_init_verbose(0); dm_log_init(NULL); dm_lib_release(); _context = NULL; } }
int dm_init(struct crypt_device *context, int check_kernel) { if (!_dm_use_count++) { log_dbg("Initialising device-mapper backend%s, UDEV is %sabled.", check_kernel ? "" : " (NO kernel check requested)", _dm_use_udev() ? "en" : "dis"); if (check_kernel && !_dm_check_versions()) { log_err(context, _("Cannot initialize device-mapper. Is dm kernel module loaded?\n")); return -1; } if (getuid() || geteuid()) log_dbg(("WARNING: Running as a non-root user. Functionality may be unavailable.")); dm_log_init(set_dm_error); dm_log_init_verbose(10); } // FIXME: global context is not safe if (context) _context = context; return 1; /* unsafe memory */ }
extern void dm_init(void) { dm_log_init(&dm_write_log); dm_log_init_verbose(conf ? conf->verbosity + 3 : 0); }
extern void dm_init(int v) { dm_log_init(&dm_write_log); dm_log_init_verbose(v + 3); }