On Thu, Jul 29, 2010 at 11:04:13PM +0800, Jan Kara wrote: > On Thu 29-07-10 19:51:43, Wu Fengguang wrote: > > The sync() is performed in two stages: the WB_SYNC_NONE sync and > > the WB_SYNC_ALL sync. It is necessary to tag both stages with > > wbc.for_sync, so as to prevent either of them being livelocked. > > > > The basic livelock scheme will be based on the sync_after timestamp. > > Inodes dirtied after that won't be queued for IO. The timestamp could be > > recorded as early as the sync() time, this patch lazily sets it in > > writeback_inodes_sb()/sync_inodes_sb(). This will stop livelock, but > > may do more work than necessary. > > > > Note that writeback_inodes_sb() is called by not only sync(), they > > are treated the same because the other callers need the same livelock > > prevention. > OK, but the patch does nothing, doesn't it? I'd prefer if the fields > you introduce were actually used in this patch. OK, I'll merge it with the third patch. Thanks, Fengguang -- 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