Re: [PATCH 16/21] fs: Protect inode->i_state with the inode->i_lock

Christoph Hellwig
2010-10-24T14:13:21Z

On Sat, Oct 23, 2010 at 10:37:52PM +0100, Al Viro wrote:
> * invalidate_inodes() - collect I_FREEING/I_WILL_FREE on a separate
> list, then (after we'd evicted the stuff we'd decided to evict) wait until
> they get freed by whatever's freeing them already.

Note that we would only have to do this for the umount case. For others
it's pretty pointless.

But I think there's a better way to do it, and that's per-sb inode lru
lists. By adopting the scheme from prune_dcache we'd always have
s_umount exclusive for inode reclaims, and per defintion we would not
have any ongoing reclaim when we do enter umount. It would also allow
us to get rid of iprune_sem and the nasty unsolved locking issues it
causes.