+ OBD_SLAB_FREE(obj, obj_cache, sizeof(*obj));
+ atomic_dec(&obj_cache_count);
+}
+
+static void
+__add_obj(struct lmv_obj *obj)
+{
+ atomic_inc(&obj->count);
+ list_add(&obj->list, &obj_list);
+}
+
+void
+lmv_add_obj(struct lmv_obj *obj)
+{
+ spin_lock(&obj_list_lock);
+ __add_obj(obj);
+ spin_unlock(&obj_list_lock);
+}
+
+static void
+__del_obj(struct lmv_obj *obj)
+{
+ list_del(&obj->list);
+ lmv_free_obj(obj);
+}
+
+void
+lmv_del_obj(struct lmv_obj *obj)
+{
+ spin_lock(&obj_list_lock);
+ __del_obj(obj);
+ spin_unlock(&obj_list_lock);
+}
+
+static struct lmv_obj *
+__get_obj(struct lmv_obj *obj)
+{
+ LASSERT(obj != NULL);
+ atomic_inc(&obj->count);
+ return obj;