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;
break;
}
}
- LU_OBJECT_HEADER(D_DLMTRACE, env, &obj->co_lu,
+ LU_OBJECT_HEADER(D_DLMTRACE, env, lu_object_top(top),
"size: "LPU64" mtime: "LPU64" atime: "LPU64" "
"ctime: "LPU64" blocks: "LPU64"\n",
lvb->lvb_size, lvb->lvb_mtime, lvb->lvb_atime,
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 = {