If call read_mmp_block failed then s_mmp_bh will be freed in read_mmp_block. Kmmpd wait to be killed, ext4_stop_mmpd stop kmmpd and also release s_mmp_bh. To avoid double free, just set EXT4_SB(sb)->s_mmp_bh with NULL. Signed-off-by: Ye Bin <yebin10@xxxxxxxxxx> --- fs/ext4/mmp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/ext4/mmp.c b/fs/ext4/mmp.c index 007bde3c12b8..a0d47a906faa 100644 --- a/fs/ext4/mmp.c +++ b/fs/ext4/mmp.c @@ -218,6 +218,7 @@ static int kmmpd(void *data) ext4_error_err(sb, -retval, "error reading MMP data: %d", retval); + EXT4_SB(sb)->s_mmp_bh = NULL; goto wait_to_exit; } -- 2.31.1