Re: [PATCH] fix inode state corruption (2.6.8-rc1-bk1)

From: Miklos Szeredi
Date: Tue Jul 13 2004 - 14:50:10 EST



Andrew Morton <akpm@xxxxxxxx> wrote:
>
> Miklos Szeredi <miklos@xxxxxxxxxx> 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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/