From: Zhang Yi <yi.zhang@xxxxxxxxxx> v1->v2: - Drop the last patch in [1]. - Merge journal_clean_one_cp_list() into journal_shrink_one_cp_list(). - Fix the race issues through trying to hold buffer lock and check dirty state under the lock. - Append a cleanup patch, remove __journal_try_to_free_buffer(). Hello, The first two patches are from [1] and are not changed, appending another four (it depends on the first three) to fix another three race issues in the checkpoint procedure which could also lead to inconsistent results. [1] https://lore.kernel.org/linux-ext4/20230516020226.2813588-1-yi.zhang@xxxxxxxxxxxxxxx/ Thanks, Yi. Zhang Yi (5): jbd2: recheck chechpointing non-dirty buffer jbd2: remove t_checkpoint_io_list jbd2: remove journal_clean_one_cp_list() jbd2: fix a race when checking checkpoint buffer busy jbd2: remove __journal_try_to_free_buffer() Zhihao Cheng (1): jbd2: Fix wrongly judgement for buffer head removing while doing checkpoint fs/jbd2/checkpoint.c | 276 ++++++++++++------------------------ fs/jbd2/commit.c | 3 +- fs/jbd2/transaction.c | 40 ++---- include/linux/jbd2.h | 7 +- include/trace/events/jbd2.h | 12 +- 5 files changed, 107 insertions(+), 231 deletions(-) -- 2.31.1