- if (flags & (LDLM_FL_BLOCK_WAIT | LDLM_FL_BLOCK_GRANTED |
- LDLM_FL_BLOCK_CONV)) {
- /* Go to sleep until the lock is granted. */
- /* FIXME: or cancelled. */
- LDLM_DEBUG(lock, "client-side enqueue returned a blocked lock,"
- " sleeping");
- ldlm_lock_dump(lock);
- ldlm_reprocess_all(lock->l_resource);
- rc = l_wait_event(lock->l_waitq,
- (lock->l_req_mode == lock->l_granted_mode),
- &lwi);
- if (rc) {
- LDLM_DEBUG(lock,
- "client-side enqueue waking up: failed (%d)",
- rc);
- } else {
- LDLM_DEBUG(lock,
- "client-side enqueue waking up: granted");
- }
- } else if (flags == LDLM_FL_WAIT_NOREPROC) {
- rc = l_wait_event(lock->l_waitq,
- (lock->l_req_mode == lock->l_granted_mode),
- &lwi);
- } else if (flags == 0) {