Hi Fengguang, On Thu 29-07-10 19:51:45, Wu Fengguang wrote: > The start time in writeback_inodes_wb() is not very useful because it > slips at each invocation time. Preferrably one _constant_ time shall be > used at the beginning to cover the whole sync() work. > > The newly dirtied inodes are now guarded at the queue_io() time instead > of the b_io walk time. This is more natural: non-empty b_io/b_more_io > means "more work pending". > > The timestamp is now grabbed the sync work submission time, and may be > further optimized to the initial sync() call time. The patch seems to have some issues... > + if (wbc->for_sync) { For example this is never set. You only set wb->for_sync. > + expire_interval = 1; > + older_than_this = wbc->sync_after; And sync_after is never set either??? > - if (!(wbc->for_kupdate || wbc->for_background) || list_empty(&wb->b_io)) > + if (list_empty(&wb->b_io)) > queue_io(wb, wbc); And what is the purpose of this? It looks as an unrelated change to me. Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- 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