Applied, thanks!
Milos Nikic, le mar. 20 oct. 2026 20:30:14 -0700, a ecrit:
> Hello,
>
> ext2fs does not replay its journal, e2fsck does. This series makes
> the journal's state on disk tell e2fsck the truth, and makes ext2fs
> pick up after e2fsck instead of writing over what it did.
> It finishes what was started with commit d4bf2ca97.
>
> The first patch keeps the needs_recovery flag set on disk whenever the
> log may hold transactions. Before, it was set lazily through the
> journal and cleared before the log was empty, so a crash could leave
> "needs_recovery flag is clear, but journal has data", which stops a
> boot-time "fsck -p".
>
> The second runs the journal only while the filesystem is writable.
> The root is mounted read-only, e2fsck replays the log, and the remount
> read-write used to keep writing at the old log head. The journal now
> starts from the on-disk journal superblock when the filesystem becomes
> writable, and stops cleanly when it becomes read-only. A log that was
> never replayed keeps the filesystem read-only until e2fsck has run.
>
> The third frees the journal when it stops, which the second makes
> happen on every read-only/writable cycle. The fourth sets the revoke
> feature that the journal relies on, and runs without a journal, with
> a warning, when the journal has features ext2fs does not write
> (64-bit tags, checksums).
>
> Milos
>
> Milos Nikic (4):
> ext2fs: Keep the needs_recovery flag on disk while the journal has
> data
> ext2fs: Run the journal only while the filesystem is writable
> ext2fs: Free the journal when it stops
> ext2fs: Check the journal's features, and declare revoke records
>
> ext2fs/ext2fs.c | 106 +++++++++++++++++++++++++---
> ext2fs/ext2fs.h | 14 ++++
> ext2fs/hyper.c | 119 +++++++++++++++++++++++++++----
> ext2fs/jbd2_format.h | 15 ++++
> ext2fs/journal.c | 163 ++++++++++++++++++++++++++++++++++++++++---
> ext2fs/journal.h | 15 ++++
> 6 files changed, 398 insertions(+), 34 deletions(-)
>
> --
> 2.56.0
>