Re: [PATCH 18/18] fs: Reduce inode I_FREEING and factor inodedisposal

From: Al Viro
Date: Fri Oct 08 2010 - 06:18:24 EST


On Fri, Oct 08, 2010 at 04:21:32PM +1100, Dave Chinner wrote:

> + spin_unlock(&sb->s_inodes_lock);
>
> - spin_lock(&inode_lru_lock);
> - list_move(&inode->i_lru, dispose);
> - spin_unlock(&inode_lru_lock);
> + dispose_one_inode(inode);
>
> - percpu_counter_dec(&nr_inodes_unused);
> + spin_lock(&sb->s_inodes_lock);

And now you've unlocked the list and even blocked. What's going to
keep next valid through that fun?

> + spin_unlock(&inode_lru_lock);
> +
> + dispose_one_inode(inode);
> + cond_resched();
> +
> + spin_lock(&inode_lru_lock);

Same, only worse - in the previous you might hope for lack of activity
on fs, in this one you really can't.
--
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/