LASSERT(cl_is_lock(lock));
LINVRNT(!cl_lock_is_mutexed(lock));
- LINVRNT(!mutex_is_locked(&lock->cll_guard));
ENTRY;
might_sleep();
head = cl_object_header(obj);
site = cl_object_site(obj);
- LINVRNT(spin_is_locked(&head->coh_lock_guard));
+ LINVRNT_SPIN_LOCKED(&head->coh_lock_guard);
atomic_inc(&site->cs_locks.cs_lookup);
list_for_each_entry(lock, &head->coh_locks, cll_linkage) {
int matched;
const struct lu_fid *fid;
int rc;
int iter;
+ int warn;
ENTRY;
fid = lu_object_fid(&io->ci_obj->co_lu);
iter = 0;
do {
- CDEBUG(iter >= 16 && IS_PO2(iter) ? D_WARNING : D_DLMTRACE,
+ warn = iter >= 16 && IS_PO2(iter);
+ CDEBUG(warn ? D_WARNING : D_DLMTRACE,
DDESCR"@"DFID" %i %08x `%s'\n",
PDESCR(need), PFID(fid), iter, enqflags, scope);
lock = cl_lock_hold_mutex(env, io, need, scope, source);
cl_lock_lockdep_acquire(env,
lock, enqflags);
break;
- }
+ } else if (warn)
+ CL_LOCK_DEBUG(D_WARNING, env, lock,
+ "got (see bug 17665)\n");
cl_unuse_locked(env, lock);
}
cl_lock_hold_release(env, lock, scope, source);