When debugging is enabled and an unclean file-system is mounter,
the following assertion is triggered:
UBIFS assert failed in ubifs_tnc_start_commit at 805 (pid 1081)
Call Trace:
[
cfaffbd0] [
c0006cf8] show_stack+0x44/0x16c (unreliable)
[
cfaffc10] [
c011b738] ubifs_tnc_start_commit+0xbb8/0xd18
[
cfaffc90] [
c0112670] do_commit+0x150/0xa44
[
cfaffd10] [
c0125234] ubifs_rcvry_gc_commit+0xd8/0x544
[
cfaffd60] [
c0100e9c] ubifs_fill_super+0xe78/0x15f8
[
cfaffdf0] [
c0102118] ubifs_get_sb+0x20c/0x320
[
cfaffe70] [
c007f764] vfs_kern_mount+0x58/0xe0
[
cfaffe90] [
c007f83c] do_kern_mount+0x40/0xf8
[
cfaffeb0] [
c0095c24] do_mount+0x550/0x758
[
cfafff10] [
c0095ebc] sys_mount+0x90/0xe0
[
cfafff40] [
c000ed4c] ret_from_syscall+0x0/0x3c
The reason is that we initialize 'c->min_leb_idx' early, and do
not re-calculate it after journal replay.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
if (err)
goto out_journal;
+ /* Calculate 'min_idx_lebs' after journal replay */
+ c->min_idx_lebs = ubifs_calc_min_idx_lebs(c);
+
err = ubifs_mount_orphans(c, c->need_recovery, mounted_read_only);
if (err)
goto out_orphans;