]> git.itanic.dy.fi Git - linux-stable/commit
ext4: don't try to processed freed blocks until mballoc is initialized
authorTheodore Ts'o <tytso@mit.edu>
Thu, 21 Jan 2021 17:33:20 +0000 (12:33 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 3 Feb 2021 04:16:01 +0000 (23:16 -0500)
commit027f14f5357279655c3ebc6d14daff8368d4f53f
treec09d01267b542969dd3a72b93cfe4b6f1b069671
parent59ebc7fd74506367b109497eeef36034e648c943
ext4: don't try to processed freed blocks until mballoc is initialized

If we try to make any changes via the journal between when the journal
is initialized, but before the multi-block allocated is initialized,
we will end up deferencing a NULL pointer when the journal commit
callback function calls ext4_process_freed_data().

The proximate cause of this failure was commit 2d01ddc86606 ("ext4:
save error info to sb through journal if available") since file system
corruption problems detected before the call to ext4_mb_init() would
result in a journal commit before we aborted the mount of the file
system.... and we would then trigger the NULL pointer deref.

Link: https://lore.kernel.org/r/YAm8qH/0oo2ofSMR@mit.edu
Reported-by: Murphy Zhou <jencce.kernel@gmail.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/super.c