On Fri, May 31, 2013 at 11:42:48AM +0200, Jan Kara wrote: > There are two issues with current writeback path in ext4. For one we > don't necessarily map complete pages when blocksize < pagesize and thus > needn't do any writeback in one iteration. We always map some blocks > though so we will eventually finish mapping the page. Just if writeback > races with other operations on the file, forward progress is not really > guaranteed. The second problem is that current code structure makes it > hard to associate all the bios to some range of pages with one io_end > structure so that unwritten extents can be converted after all the bios > are finished. This will be especially difficult later when io_end will > be associated with reserved transaction handle. > > We restructure the writeback path to a relatively simple loop which > first prepares extent of pages, then maps one or more extents so that > no page is partially mapped, and once page is fully mapped it is > submitted for IO. We keep all the mapping and IO submission information > in mpage_da_data structure to somewhat reduce stack usage. Resulting > code is somewhat shorter than the old one and hopefully also easier to > read. > > Reviewed-by: Zheng Liu <wenqing.lz@xxxxxxxxxx> > Signed-off-by: Jan Kara <jack@xxxxxxx> Thanks, applied. - Ted -- 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