Hello, this patch series modifies ext4 so that we stop using ext4_writepage() for writeout of ordered data during transaction commit (through generic_writepages() from jbd2_journal_submit_inode_data_buffers()). Instead we directly call ext4_writepages() from the ext4_journal_submit_inode_data_buffers(). This is part of Christoph's effort to get rid of the .writepage() callback in all filesystems. I have also modified ext4_writepages() to use write_cache_pages() instead of generic_writepages() so now we don't expose .writepage hook at all. We still keep ext4_writepage() as a callback for write_cache_pages(). We should refactor that path as well and get rid of ext4_writepage() completely but that is for a separate cleanup. Also note that jbd2 still uses generic_writepages() in its jbd2_journal_submit_inode_data_buffers() helper because it is still used from OCFS2. Again, something to be dealt with in a separate patchset. Changes since v3: * Added export of buffer_migrate_page_norefs() * Clarified commit message about page migration a bit Changes since v2: * Added Reviewed-by tags from Christoph * Added WARN_ON to verify we're not trying to start transaction from transaction commit writeback * Converted fastcommit path to use ext4_writepages() for data writeout * Some minor tweaks suggested by Christoph Changes since v1: * Added Reviewed-by tags from Ritesh * Added patch to get rid of generic_writepages() in ext4_writepages() * Added patch to get rid of .writepage hook Honza Previous versions: Link: http://lore.kernel.org/r/20221130162435.2324-1-jack@xxxxxxx # v1 Link: http://lore.kernel.org/r/20221202163815.22928-1-jack@xxxxxxx # v2 Link: http://lore.kernel.org/r/20221205122604.25994-1-jack@xxxxxxx # v3