Lines Matching defs:ls

33 void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid,
46 e->recover_seq = ls->ls_recover_seq & 0xFFFFFFFF;
51 atomic_inc(&ls->ls_requestqueue_cnt);
52 mutex_lock(&ls->ls_requestqueue_mutex);
53 list_add_tail(&e->list, &ls->ls_requestqueue);
54 mutex_unlock(&ls->ls_requestqueue_mutex);
68 int dlm_process_requestqueue(struct dlm_ls *ls)
74 mutex_lock(&ls->ls_requestqueue_mutex);
77 if (list_empty(&ls->ls_requestqueue)) {
78 mutex_unlock(&ls->ls_requestqueue_mutex);
82 e = list_entry(ls->ls_requestqueue.next, struct rq_entry, list);
83 mutex_unlock(&ls->ls_requestqueue_mutex);
87 log_limit(ls, "dlm_process_requestqueue msg %d from %d "
95 dlm_receive_message_saved(ls, &e->request, e->recover_seq);
97 mutex_lock(&ls->ls_requestqueue_mutex);
99 if (atomic_dec_and_test(&ls->ls_requestqueue_cnt))
100 wake_up(&ls->ls_requestqueue_wait);
103 if (dlm_locking_stopped(ls)) {
104 log_debug(ls, "process_requestqueue abort running");
105 mutex_unlock(&ls->ls_requestqueue_mutex);
125 void dlm_wait_requestqueue(struct dlm_ls *ls)
127 wait_event(ls->ls_requestqueue_wait,
128 atomic_read(&ls->ls_requestqueue_cnt) == 0);
131 static int purge_request(struct dlm_ls *ls, struct dlm_message *ms, int nodeid)
135 /* the ls is being cleaned up and freed by release_lockspace */
136 if (!atomic_read(&ls->ls_count))
139 if (dlm_is_removed(ls, nodeid))
150 if (!dlm_no_directory(ls))
156 void dlm_purge_requestqueue(struct dlm_ls *ls)
161 mutex_lock(&ls->ls_requestqueue_mutex);
162 list_for_each_entry_safe(e, safe, &ls->ls_requestqueue, list) {
165 if (purge_request(ls, ms, e->nodeid)) {
167 if (atomic_dec_and_test(&ls->ls_requestqueue_cnt))
168 wake_up(&ls->ls_requestqueue_wait);
172 mutex_unlock(&ls->ls_requestqueue_mutex);