summaryrefslogtreecommitdiff
path: root/fs/inode.c
diff options
context:
space:
mode:
authorGlauber Costa <glommer@gmail.com>2013-08-28 00:17:59 (GMT)
committerAl Viro <viro@zeniv.linux.org.uk>2013-09-10 22:56:30 (GMT)
commitd38fa6986e9124f827aa6ea4a9dde01e67a37be7 (patch)
treea8959a7583895330006abfa490cac57eb0fe5225 /fs/inode.c
parentbc3b14cb2d505dda969dbe3a31038dbb24aca945 (diff)
downloadlinux-fsl-qoriq-d38fa6986e9124f827aa6ea4a9dde01e67a37be7.tar.xz
inode: move inode to a different list inside lock
When removing an element from the lru, this will be done today after the lock is released. This is a clear mistake, although we are not sure if the bugs we are seeing are related to this. All list manipulations are done inside the lock, and so should this one. Signed-off-by: Glauber Costa <glommer@openvz.org> Tested-by: Michal Hocko <mhocko@suse.cz> Cc: Dave Chinner <dchinner@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/inode.c')
-rw-r--r--fs/inode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/inode.c b/fs/inode.c
index a973d26..5b1ec47 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -735,9 +735,9 @@ inode_lru_isolate(struct list_head *item, spinlock_t *lru_lock, void *arg)
WARN_ON(inode->i_state & I_NEW);
inode->i_state |= I_FREEING;
+ list_move(&inode->i_lru, freeable);
spin_unlock(&inode->i_lock);
- list_move(&inode->i_lru, freeable);
this_cpu_dec(nr_unused);
return LRU_REMOVED;
}