On Sat, Jan 21, 2023 at 3:29 PM Christoph Hellwig <hch@xxxxxx> wrote: > > > + struct address_space *mapping = data; > > + int ret = mapping->a_ops->writepage(page, wbc); > > + mapping_set_error(mapping, ret); > > + return ret; > > I guess beggars can't be choosers, but is there a chance to directly > call the relevant gfs2 writepage methods here instead of the > ->writepage call? Yes, we could wrap struct address_space_operations and move the writepage method into its wrapper structure relatively easily, but that would still leave things in a messy state. So I'd really like to reassess the validity of commit 5ac048bb7ea6 ("GFS2: Use filemap_fdatawrite() to write back the AIL") before deciding to go that way. Also, we're really trying to iterate the list of inodes that are part of the transaction here, not the list of blocks, and if we stick with that, an actual list of inodes would help. That would be the complement of our list of ordered inodes in a sense. Until then, I'd like to stick with the simplest possible solution though, which seems to be this. > Otherwise this looks good: > > Acked-by: Christoph Hellwig <hch@xxxxxx> Thanks a lot, Andreas