linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Lazytime feature bugs
@ 2015-02-18 13:19 Jan Kara
  2015-02-24 18:31 ` Jan Kara
  0 siblings, 1 reply; 14+ messages in thread
From: Jan Kara @ 2015-02-18 13:19 UTC (permalink / raw)
  To: tytso; +Cc: linux-fsdevel, Alexander Viro, Linus Torvalds

  Hello,

  I had a look at what got merged as a lazytime series from Ted and I have
found a couple of issues (I think I've pointed them out in my emails back
in November but admittedly things were somewhat confused back then since
Ted was submitting new versions pretty fast). Anyway here are the issues
I've found in the merged code:

1) Inode that gets periodically dirtied with I_DIRTY_PAGES, cleaned and
   dirtied again will have inode with updated timestamps never written due
   to age since inode->dirtied_when gets reset on each redirtying with
   I_DIRTY_PAGES.
2) The code won't maintain time ordering of b_dirty_time list by
   inode->dirtied_when - this happens because requeue_inode() moves inode
   at the head of the b_dirty_time list but inodes in b_io list from which
   we move are no longer ordered by dirtied_when (due to that list being
   combined from several lists and also because we sort the list by
   superblock). As a result terminating logic in move_expired_inodes() may
   terminate the scan too early for b_dirty_time list.
3) This is mostly cosmetic currently but is a potential landmine for
   future: If you dirty with I_DIRTY_PAGES | I_DIRTY_TIME inode gets filed
   to b_dirty_time list instead of b_dirty list.
4) Another mostly cosmetic issue: move_expired_inodes() should use
   work->for_sync instead of work->reason == WB_REASON_SYNC (work->reason is
   there only for tracing purposes).

								Honza
-- 
Jan Kara <jack@suse.cz>
SUSE Labs, CR

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2015-03-08 19:06 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-18 13:19 Lazytime feature bugs Jan Kara
2015-02-24 18:31 ` Jan Kara
2015-02-24 18:58   ` Linus Torvalds
2015-02-25 14:52     ` Theodore Ts'o
2015-02-25 16:25       ` Jan Kara
2015-02-26  4:33         ` Theodore Ts'o
2015-02-26  8:34           ` Jan Kara
2015-02-26 13:45             ` Theodore Ts'o
2015-02-26 14:38               ` Jan Kara
2015-02-26 19:27                 ` Theodore Ts'o
2015-03-02  8:29                   ` Jan Kara
2015-03-07  5:34                     ` [PATCH] fs: make sure the timestamps for lazytime inodes eventually get written Theodore Ts'o
2015-03-08 10:06                       ` Jan Kara
2015-03-08 19:06                         ` Theodore Ts'o

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).