X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fobdclass%2Fcl_lock.c;h=1dae0f84c4ab5b06c3cf3f960805a3f2813aa7bb;hb=15252614d7de8013874be0a0deb73a421530867f;hp=89077c2f34c4e324e4249497ac2e64011271bbe6;hpb=fbf5870b9848929d352460f1f005b79c0b5ccc5a;p=fs%2Flustre-release.git diff --git a/lustre/obdclass/cl_lock.c b/lustre/obdclass/cl_lock.c index 89077c2..1dae0f8 100644 --- a/lustre/obdclass/cl_lock.c +++ b/lustre/obdclass/cl_lock.c @@ -212,7 +212,6 @@ static void cl_lock_free(const struct lu_env *env, struct cl_lock *lock) LASSERT(cl_is_lock(lock)); LINVRNT(!cl_lock_is_mutexed(lock)); - LINVRNT(!mutex_is_locked(&lock->cll_guard)); ENTRY; might_sleep(); @@ -404,7 +403,7 @@ static struct cl_lock *cl_lock_lookup(const struct lu_env *env, 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; @@ -1881,12 +1880,14 @@ struct cl_lock *cl_lock_request(const struct lu_env *env, struct cl_io *io, 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); @@ -1898,7 +1899,9 @@ struct cl_lock *cl_lock_request(const struct lu_env *env, struct cl_io *io, 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);