|
@@ -173,19 +173,14 @@ void gfs2_glock_add_to_lru(struct gfs2_glock *gl)
|
|
|
spin_unlock(&lru_lock);
|
|
|
}
|
|
|
|
|
|
-static void __gfs2_glock_remove_from_lru(struct gfs2_glock *gl)
|
|
|
+static void gfs2_glock_remove_from_lru(struct gfs2_glock *gl)
|
|
|
{
|
|
|
+ spin_lock(&lru_lock);
|
|
|
if (!list_empty(&gl->gl_lru)) {
|
|
|
list_del_init(&gl->gl_lru);
|
|
|
atomic_dec(&lru_count);
|
|
|
clear_bit(GLF_LRU, &gl->gl_flags);
|
|
|
}
|
|
|
-}
|
|
|
-
|
|
|
-static void gfs2_glock_remove_from_lru(struct gfs2_glock *gl)
|
|
|
-{
|
|
|
- spin_lock(&lru_lock);
|
|
|
- __gfs2_glock_remove_from_lru(gl);
|
|
|
spin_unlock(&lru_lock);
|
|
|
}
|
|
|
|
|
@@ -205,9 +200,7 @@ void gfs2_glock_put(struct gfs2_glock *gl)
|
|
|
|
|
|
lockref_mark_dead(&gl->gl_lockref);
|
|
|
|
|
|
- spin_lock(&lru_lock);
|
|
|
- __gfs2_glock_remove_from_lru(gl);
|
|
|
- spin_unlock(&lru_lock);
|
|
|
+ gfs2_glock_remove_from_lru(gl);
|
|
|
spin_unlock(&gl->gl_lockref.lock);
|
|
|
spin_lock_bucket(gl->gl_hash);
|
|
|
hlist_bl_del_rcu(&gl->gl_list);
|