Hey Jan, This series implements your suggestions for the RFC PATCH v3 set [1]. That addressed the issue you confirmed with block_page_mkwrite() [2]. There's no "JBD2: Spotted dirty metadata buffer" message in over 72h runs across 3 VMs (it used to happen within a few hours.) *Thanks!* I added Reviewed-by: tags for the patches/changes you mentioned. The only changes from v3 are patch 3 which is new, and contains the 2 fixes to ext4_page_mkwrite(); and patch 4 changed 'struct writeback_control.nr_to_write' from ~0ULL to LONG_MAX, since it is signed long (~0ULL overflows to -1; kudos, kernel test robot!) It looks almost good on fstests: zero regressions on data=ordered, and two apparently flaky tests data=journal (generic/347 _passed_ 1/6 times with the patch, and generic/547 failed 1/6 times.) I'll have more fstests runs on original/patched kernel to confirm if they are flaky on both, or hit corner cases with patches only, and will follow up with results. (and basic testing w/ ocfs2 too.) Thanks again! Mauricio [1] https://lore.kernel.org/linux-ext4/20200910193127.276214-1-mfo@xxxxxxxxxxxxx/ [2] https://lore.kernel.org/linux-ext4/20200916161538.GK3607@xxxxxxxxxxxxxx/ Mauricio Faria de Oliveira (4): jbd2: introduce/export functions jbd2_journal_submit|finish_inode_data_buffers() jbd2, ext4, ocfs2: introduce/use journal callbacks j_submit|finish_inode_data_buffers() ext4: data=journal: fixes for ext4_page_mkwrite() ext4: data=journal: write-protect pages on j_submit_inode_data_buffers() fs/ext4/inode.c | 62 ++++++++++++++++++++++++++++----- fs/ext4/super.c | 82 ++++++++++++++++++++++++++++++++++++++++++++ fs/jbd2/commit.c | 58 +++++++++++++++++-------------- fs/jbd2/journal.c | 2 ++ fs/ocfs2/super.c | 5 +++ include/linux/jbd2.h | 29 +++++++++++++++- 6 files changed, 203 insertions(+), 35 deletions(-) -- 2.17.1