Applied, thanks!
Milos Nikic, le jeu. 24 sept. 2026 15:02:28 -0700, a ecrit:
> Currently there is a state where inside
> journal_commit_running_transaction_locked we move the running transaction to
> committing one, and then start waiting for the t_updates on the committing
> transaction to become 0 to proceed with the commit. In this gap, there is no
> running transaction
> ---
> ext2fs/journal.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/ext2fs/journal.c b/ext2fs/journal.c
> index 5c4cc711a..d4097da89 100644
> --- a/ext2fs/journal.c
> +++ b/ext2fs/journal.c
> @@ -2064,6 +2064,15 @@ journal_commit_running_transaction_locked (journal_t
> *journal)
>
> journal->j_committing_transaction = txn;
> journal->j_running_transaction = NULL;
> + if (!journal->j_must_exit)
> + {
> + /* Instantly spawn the next txn so that there is no gap. */
> + diskfs_transaction_t *run =
> + diskfs_journal_start_transaction_locked (journal);
> + if (run)
> + run->t_updates--; /* We are just seeding it, not joining it! */
> + }
> +
> txn->t_state = T_LOCKED;
>
> while (txn->t_updates > 0)
> --
> 2.55.0
>