On Thu, Aug 04, 2011 at 12:36:16PM +0200, Jan Kara wrote: > > The first one actually is a synchronous writeout, just implemented in > > a rather odd way by doing the xfs_ioend_wait right after it, so your > > change is actively harmful for it. > Oh, right. BTW cannot be truncate livelocked on a busy file because of > that xfs_ioend_wait()? Not really. We requite the iolock for new writes to start, and truncate holds it exclusively. But I'm working on a series for 3.2 to remove xfs_ioend_wait and just rely on inode_dio_wait for direct I/O, so it will be gone soon. At this point I'll also have to switch to filemap_write_and_wait_range for this caller. > > The third one is opportunistic writeout if a file got truncated down on > > final release. filemap_flush probably is fine here, but there's no need > > for a range version. If you replace it with filemap_flush please also > > kill the useless wrapper while you're at it. > Do you mean xfs_flush_pages()? OK, I can do that. Yes, xfs_flush_pages should go - at least he async version and its abuse of the buffer flags. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html