/// open device static void fs_open(char* device){ unsigned long long int state, extended; if (libreiser4_init()) { log_mesg(0, 1, 1, fs_opt.debug, "%s: Can't initialize libreiser4.\n", __FILE__); } if (!(fs_device = aal_device_open(&file_ops, device, 512, O_RDONLY))) { log_mesg(0, 1, 1, fs_opt.debug, "%s: Cannot open the partition (%s).\n", __FILE__, device); } if (!(fs = reiser4_fs_open(fs_device, 0))) { log_mesg(0, 1, 1, fs_opt.debug, "%s: Can't open reiser4 on %s\n", __FILE__, device); } //reiser4_opset_profile(fs->tree->ent.opset); if (!(fs->journal = reiser4_journal_open(fs, fs_device))) { log_mesg(0, 1, 1, fs_opt.debug, "%s: Can't open journal on %s", __FILE__, device); } state = get_ss_status(STATUS(fs->status)); extended = get_ss_extended(STATUS(fs->status)); if(fs_opt.ignore_fschk){ log_mesg(1, 0, 0, fs_opt.debug, "%s: Ignore filesystem check\n", __FILE__); }else{ if (!state) log_mesg(0, 1, 1, fs_opt.debug, "%s: REISER4 can't get status\n", __FILE__); if (state) log_mesg(3, 0, 0, fs_opt.debug, "%s: REISER4 stat : %i\n", __FILE__, state); if (state != FS_OK) log_mesg(0, 1, 1, fs_opt.debug, "%s: Filesystem isn't in valid state. May be it is not cleanly unmounted.\n\n", __FILE__); if (extended) log_mesg(3, 0, 0, fs_opt.debug, "%s: Extended status: %0xllx\n", extended, __FILE__); } //reiser4_opset_profile(fs->tree->ent.opset); fs->format = reiser4_format_open(fs); }
static reiser4_fs_t *busy_fs_open(char *name) { aal_device_t *device; reiser4_fs_t *fs; if (!(device = aal_device_open(&file_ops, name, 512, O_RDWR))) { aal_error("Can't open device %s.", name); return NULL; } if (!(fs = reiser4_fs_open(device, 1))) { aal_error("Can't open filesystem on %s.", name); goto error_close_device; } if (!(fs->journal = reiser4_journal_open(fs, device))) { aal_error("Failed to open the journal on %s.", name); goto error_close_fs; } fs->tree->mpc_func = misc_mpressure_detect; if (reiser4_journal_replay(fs->journal)) { aal_error("Failed to replay the journal on %s.", name); goto error_close_journal; } reiser4_journal_close(fs->journal); fs->journal = NULL; reiser4_fs_sync(fs); return fs; error_close_journal: reiser4_journal_close(fs->journal); error_close_fs: reiser4_fs_close(fs); error_close_device: aal_device_close(device); return NULL; }