From: Christoph Hellwig Date: Fri, 28 Oct 2011 08:03:41 +0000 (+0200) Subject: vfs: fix spinning prevention in prune_icache_sb X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=62a3ddef6181d7d932c565d97552d2f7b9ab4d28;p=deliverable%2Flinux.git vfs: fix spinning prevention in prune_icache_sb We need to move the inode to the end of the list to actually make the spinning prevention explained in the comment above it work. With a plain list_move it will simply stay in place as we're always reclaiming from the head of the list. Signed-off-by: Christoph Hellwig --- diff --git a/fs/inode.c b/fs/inode.c index ec7924696a13..ecbb68dc7e2a 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -634,7 +634,7 @@ void prune_icache_sb(struct super_block *sb, int nr_to_scan) * inode to the back of the list so we don't spin on it. */ if (!spin_trylock(&inode->i_lock)) { - list_move(&inode->i_lru, &sb->s_inode_lru); + list_move_tail(&inode->i_lru, &sb->s_inode_lru); continue; }