From: "Steven Rostedt (Google)" <rostedt@xxxxxxxxxxx> Before a timer is freed, timer_shutdown() must be called. Note that it is assumed that the timer is not running while being freed, so only timer_shutdown() is used, and not timer_shutdown_sync(). Link: https://lore.kernel.org/all/20220407161745.7d6754b3@xxxxxxxxxxxxxxxxxx/ Cc: "Theodore Ts'o" <tytso@xxxxxxx> Cc: Jan Kara <jack@xxxxxxxx> Cc: linux-ext4@xxxxxxxxxxxxxxx Signed-off-by: Steven Rostedt (Google) <rostedt@xxxxxxxxxxx> --- fs/jbd2/journal.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index 2696f43e7239..57d2445d8c8b 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -2157,6 +2157,8 @@ int jbd2_journal_destroy(journal_t *journal) J_ASSERT(journal->j_checkpoint_transactions == NULL); spin_unlock(&journal->j_list_lock); + timer_shutdown(&journal->j_commit_timer); + /* * OK, all checkpoint transactions have been checked, now check the * write out io error flag and abort the journal if some buffer failed -- 2.35.1