Hello, this is my series of patches improving ext4 writeback path and somewhat cleaning up that code. Some things this patch set achieves: * ext4_io_end structure doesn't contain page pointers anymore so it is significantly smaller (by about 1KB) (patch 1) * bio splitting is now handled properly so we no longer hit warnings about extents changed while IO was in progress (patch 2) * JBD2 supports transaction reservations - a way to start a transaction without blocking on journal (patch 12) * cleanups of ext4_da_writepages() and connected stuff (patches 14-18) * we clear PageWriteback bit only after extents are converted (PATCHES 22) * we can thus remove waits for unwritten extent conversion I've tested patches with xfstests in different configurations (default, dioread_nolock, nojournal, blocksize 1KB). The patches are based on recent Linus' tree. Since v1 I've fixed couple of bugs found during testing: * Changed transaction reservation API because it had inherent deadlocks when the journal got frozen * I've fixed some issues in my writeback patches resulting in bad extent conversion The timing of the submission isn't perfect since I'm leaving for two weeks of vacation (out of email) so I won't be able to react but it took me much longer than I expected to nail down all the bugs I found. The patch set needs a serious testing so please beat it as much as you can. I once hit a fs corruption (used block marked as freed) which I was not able to explain in nojournal mode and I didn't reproduce it since so there may be bugs hiding (or it may have been completely unrelated bug). Honza -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html