struct lu_object_header *top;
int result;
- LASSERT(spin_is_locked(cl_object_attr_guard(obj)));
+ LASSERT_SPIN_LOCKED(cl_object_attr_guard(obj));
ENTRY;
top = obj->co_lu.lo_header;
struct lu_object_header *top;
int result;
- LASSERT(spin_is_locked(cl_object_attr_guard(obj)));
+ LASSERT_SPIN_LOCKED(cl_object_attr_guard(obj));
ENTRY;
top = obj->co_lu.lo_header;
struct lu_env *env;
struct cl_env *cle;
- OBD_SLAB_ALLOC_PTR(cle, cl_env_kmem);
+ OBD_SLAB_ALLOC_PTR_GFP(cle, cl_env_kmem, CFS_ALLOC_IO);
if (cle != NULL) {
int rc;
}
}
env = cl_env_get(&nest->cen_refcheck);
- LASSERT(ergo(!IS_ERR(env), !cl_io_is_going(env)));
+ if (IS_ERR(env)) {
+ cl_env_reexit(nest->cen_cookie);
+ return env;
+ }
+
+ LASSERT(!cl_io_is_going(env));
return env;
}
EXPORT_SYMBOL(cl_env_nested_get);
struct cl_thread_info *info;
info = cl0_key_init(ctx, key);
- if (!IS_ERR(info))
- lu_ref_init(&info->clt_locks_locked);
+ if (!IS_ERR(info)) {
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(info->clt_counters); ++i)
+ lu_ref_init(&info->clt_counters[i].ctc_locks_locked);
+ }
return info;
}
struct lu_context_key *key, void *data)
{
struct cl_thread_info *info;
+ int i;
info = data;
- lu_ref_fini(&info->clt_locks_locked);
+ for (i = 0; i < ARRAY_SIZE(info->clt_counters); ++i)
+ lu_ref_fini(&info->clt_counters[i].ctc_locks_locked);
cl0_key_fini(ctx, key, data);
}
struct lu_context_key *key, void *data)
{
struct cl_thread_info *info = data;
+ int i;
- LASSERT(info->clt_nr_locks_locked == 0);
- LASSERT(info->clt_nr_held == 0);
- LASSERT(info->clt_nr_used == 0);
- LASSERT(info->clt_nr_locks_acquired == 0);
-
- lu_ref_fini(&info->clt_locks_locked);
- lu_ref_init(&info->clt_locks_locked);
+ for (i = 0; i < ARRAY_SIZE(info->clt_counters); ++i) {
+ LASSERT(info->clt_counters[i].ctc_nr_held == 0);
+ LASSERT(info->clt_counters[i].ctc_nr_used == 0);
+ LASSERT(info->clt_counters[i].ctc_nr_locks_acquired == 0);
+ LASSERT(info->clt_counters[i].ctc_nr_locks_locked == 0);
+ lu_ref_fini(&info->clt_counters[i].ctc_locks_locked);
+ lu_ref_init(&info->clt_counters[i].ctc_locks_locked);
+ }
}
static struct lu_context_key cl_key = {