On Thu 26-02-15 08:45:53, Ted Tso wrote: > On Thu, Feb 26, 2015 at 09:34:55AM +0100, Jan Kara wrote: > > I don't think you can reset i_dirty_time_when to "now" in b) because in > > that case continually dirtied files won't ever have timestamps written (you > > are completely loosing track of when you last wrote timestamps to disk). > > In the case of continually dirtied files, in my proposal we would be > checking to see if i_dirty_time_when is older when we scan files in > b_io, which means that we would discover files with stale timestamps > on disk, and they would get written out. 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). > This was the same as (4) in your propsal: > > > > 4) When processing inodes on b_io list we also check whether > > i_dirty_time_when is older than 12 hours. If so, we writeout inode. > > But your mechanism would work as well; I preferred to keep > i_dirty_when to only mean when the pages were dirtied, but the > important thing is that we have to track when the timestamps were > dirtied and when the pages were dirtied as separate things. 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