Commit 3b1833e9 authored by Jan Kara's avatar Jan Kara Committed by Theodore Ts'o
Browse files

ext4: annotate data race in start_this_handle()



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@kernel.org
Reported-by: default avatar <syzbot+30774a6acf6a2cf6d535@syzkaller.appspotmail.com>
Signed-off-by: default avatarJan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20210406161804.20150-1-jack@suse.cz


Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent 6810fad9
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -349,7 +349,12 @@ static int start_this_handle(journal_t *journal, handle_t *handle,
	}

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.