[U-Boot] Load from ext4 can fail or get incoherent data because of the journaling

Jean-Christian de Rivaz jean-christian.derivaz at innodelec.ch
Tue Jun 19 17:04:13 UTC 2018


Hi all,

Some system really need ext4 journal_data option to avoid any
inconsistency on his filesystem in case of unexpected power failure.
While journal_data greatly improved the reliability of the system from
the Linux kernel point of view, to my surprise this has increase the
failure rate of U-Boot. Sometime a file is not found by U-Boot (notably
the armbianEnv.txt file in my case) or his content can even be from an
other file ! The most frequently message in the later case is:

** File not found /boot/dtb/overlay/-fixup.scr **

Because the ${overlay_prefix} variable was not imported from the
corrupted read of the armbianEnv.txt file. The file is read correctly by
the Linux kernel.

I have found that others U-Boot users have spot this message, but to my
knowledge this has not be linked to the failure of U-Boot to use the
ext4 journal. I think that the problem can affect any ext4 files loaded
by U-Boot that have part in the ext4 journal, making a serious issue on
the U-Boot reliability if I am right. From my understanding the
ext4_journal.c code into U-Boot only handle write transactions to the
ext4 journal and is not used while reading a file.

I there someone with some experience in that field that can assert /
reject / help about my observation ?

Best regards
Jean-Christian de Rivaz



More information about the U-Boot mailing list