Messages in this thread | | | Subject | Re: [PATCH] fix inode state corruption (2.6.8-rc1-bk1) | From | Miklos Szeredi <> | Date | Tue, 13 Jul 2004 21:48:00 +0200 |
| |
Andrew Morton <akpm@osdl.org> wrote: > > Miklos Szeredi <miklos@szeredi.hu> wrote: > > > > This patch fixes a hard-to-trigger condition, where the inode is on > > the inode_in_use list while it's state is dirty. In this state dirty > > pages are not written back in sync() or from kupdate, only from direct > > page reclaim. And this causes a livelock in balance_dirty_pages after > > a while. > > How ghastly. > > Why did you make the list movement conditional on non-zero `wait'?
Because, I think this particular case can only happen in sync writeback. Otherwise the inode_lock is not released in __writeback_single_inode so the inode must be on the s_io list. I don't see wheter it makes any difference performance-wise whether the inode is left on s_io or unconditionally moved to s_dirty, but this is the smaller change.
Miklos - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |