On Wed, Nov 26, 2014 at 05:20:17AM -0500, Theodore Ts'o wrote: > On Wed, Nov 26, 2014 at 10:48:51AM +1100, Dave Chinner wrote: > > No abuse necessary at all. Just a different inode_dirtied_after() > > check is requires if the inode is on the time dirty list in > > move_expired_inodes(). > > I'm still not sure what you have in mind here. When would this be > checked? Have you looked at where move_expired_inodes() gets called from? It's called periodically from background writeback by queue_io(), and sync uses the same infrastructure to expire all inodes on the dirty list.... > It sounds like you want to set a timeout such that when an > inode which had its timestamps updated lazily 24 hours earlier, the > inode would get written out. Yes? But that implies something is > going to have to scan the list of inodes on the dirty time list > periodically. When are you proposing that this take place? The writeback code already does this for dirty inodes. it does it in move_expired_inodes() to move the inodes with i_dirtied_when is older than 30s. It's *trivial* to add a time dirty inode list and scan that at the same time to pull off inodes that are older than 24hrs. > The various approaches that come to mind all seem more complex than > what I have in this patch 3 of 4, and I'm not sure it's worth the > complexity. the "once a day" stuff you've added is a horrible, nasty hack. I wasn't going to say anything about it (i.e. if you can't say anything nice...). The existing dirty inode writeback expiry code does *everything* we need already, we just need to plumb in a new list and add an expiry check of that list to move inodes to the b_io list when they have been timestamp dirty for more than 24 hours... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs