On Thu, Feb 26, 2015 at 03:38:28PM +0100, Jan Kara wrote: > But you wrote you'll reset i_dirty_time_when to "now" when queueing into > b_dirty_time. Thus frequently dirtied inodes will just travel back and > forth between b_dirty and b_dirty_time lists and i_dirty_time will be > continuously reset. And you never end up writing it. That's why I suggested > to reset i_dirted_when instead (since it would be unused in b_dirty_time > list anyway). Inodes will never get transfered onto the b_dirty_time list if they also have dirty pages. So if the inode is constantly getting dirtied, the pages *will* get written out, and when they do, we'll also check to see if i_dirty_time_when is too old, and also updated the timestamp. Basically the I_DIRTY_TIME flag is the "weakest" of all of the dirty flags. If the inode is dirty, it takes precedence, and writing out the inode will include updating the timestamps. If the inode's pages are dirty, it takes precedence over I_DIRTY_TIME, so we worry about getting the pages written out before we even think about considering whether or not the inode should go on the b_dirty_time list. So I don't see how inodes would be shuttling back and forth between b_io and b_dirty_time. - Ted -- 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