On Wed, Jan 18, 2023 at 10:22:20PM +0100, Andreas Gruenbacher wrote: > The above change means that instead of calling generic_writepages(), > we end up calling filemap_fdatawrite_wbc() -> do_writepages() -> > mapping->a_ops->writepages(). But that's something completely > different; the writepages address space operation operates is outward > facing, while we really only want to write out the dirty buffers / > pages in the underlying address space. In case of journaled data > inodes, gfs2_jdata_writepages() actually ends up trying to create a > filesystem transaction, which immediately hangs because we're in the > middle of a log flush. > > So I'm tempted to revert the following two of your commits; luckily > that's independent from the iomap_writepage() removal: > > d3d71901b1ea ("gfs2: remove ->writepage") > b2b0a5e97855 ("gfs2: stop using generic_writepages in gfs2_ail1_start_one") generic_writepages is gone in linux-next, and I'd really like to keep it that way. So if you have to do this, please open code it using write_cache_pages and a direct call to the writepage method of choice. > I think we could go through iomap_writepages() instead of > generic_writepages() here as well, but that's for another day. Well, that would obviously be much better, and actually help with the goal of removing ->writepage.