static void vvp_object_free(const struct lu_env *env, struct lu_object *obj) { struct vvp_object *vob = lu2vvp(obj); lu_object_fini(obj); lu_object_header_fini(obj->lo_header); OBD_SLAB_FREE_PTR(vob, vvp_object_kmem); }
static void vvp_object_free(const struct lu_env *env, struct lu_object *obj) { struct vvp_object *vob = lu2vvp(obj); lu_object_fini(obj); lu_object_header_fini(obj->lo_header); kmem_cache_free(vvp_object_kmem, vob); }
static void osp_object_free(const struct lu_env *env, struct lu_object *o) { struct osp_object *obj = lu2osp_obj(o); struct lu_object_header *h = o->lo_header; dt_object_fini(&obj->opo_obj); lu_object_header_fini(h); OBD_SLAB_FREE_PTR(obj, osp_object_kmem); }
static void lovsub_object_free(const struct lu_env *env, struct lu_object *obj) { struct lovsub_object *los = lu2lovsub(obj); struct lov_object *lov = los->lso_super; /* We can't assume lov was assigned here, because of the shadow * object handling in lu_object_find. */ if (lov) { LASSERT(lov->lo_type == LLT_RAID0); LASSERT(lov->u.raid0.lo_sub[los->lso_index] == los); spin_lock(&lov->u.raid0.lo_sub_lock); lov->u.raid0.lo_sub[los->lso_index] = NULL; spin_unlock(&lov->u.raid0.lo_sub_lock); } lu_object_fini(obj); lu_object_header_fini(&los->lso_header.coh_lu); kmem_cache_free(lovsub_object_kmem, los); }