This is a note to let you know that I've just added the patch titled ext4: annotate data race in start_this_handle() to the 5.10-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: ext4-annotate-data-race-in-start_this_handle.patch and it can be found in the queue-5.10 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 3b1833e92baba135923af4a07e73fe6e54be5a2f Mon Sep 17 00:00:00 2001 From: Jan Kara <jack@xxxxxxx> Date: Tue, 6 Apr 2021 18:17:59 +0200 Subject: ext4: annotate data race in start_this_handle() From: Jan Kara <jack@xxxxxxx> commit 3b1833e92baba135923af4a07e73fe6e54be5a2f upstream. Access to journal->j_running_transaction is not protected by appropriate lock and thus is racy. We are well aware of that and the code handles the race properly. Just add a comment and data_race() annotation. Cc: stable@xxxxxxxxxx Reported-by: syzbot+30774a6acf6a2cf6d535@xxxxxxxxxxxxxxxxxxxxxxxxx Signed-off-by: Jan Kara <jack@xxxxxxx> Link: https://lore.kernel.org/r/20210406161804.20150-1-jack@xxxxxxx Signed-off-by: Theodore Ts'o <tytso@xxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- fs/jbd2/transaction.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) --- a/fs/jbd2/transaction.c +++ b/fs/jbd2/transaction.c @@ -349,7 +349,12 @@ static int start_this_handle(journal_t * } alloc_transaction: - if (!journal->j_running_transaction) { + /* + * This check is racy but it is just an optimization of allocating new + * transaction early if there are high chances we'll need it. If we + * guess wrong, we'll retry or free unused transaction. + */ + if (!data_race(journal->j_running_transaction)) { /* * If __GFP_FS is not present, then we may be being called from * inside the fs writeback layer, so we MUST NOT fail. Patches currently in stable-queue which might be from jack@xxxxxxx are queue-5.10/ext4-fix-occasional-generic-418-failure.patch queue-5.10/ext4-do-not-set-sb_active-in-ext4_orphan_cleanup.patch queue-5.10/ext4-annotate-data-race-in-start_this_handle.patch queue-5.10/ext4-fix-check-to-prevent-false-positive-report-of-incorrect-used-inodes.patch queue-5.10/ext4-annotate-data-race-in-jbd2_journal_dirty_metadata.patch