Lines Matching refs:ls
32 void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, struct dlm_message *ms)
43 e->recover_seq = ls->ls_recover_seq & 0xFFFFFFFF;
47 mutex_lock(&ls->ls_requestqueue_mutex);
48 list_add_tail(&e->list, &ls->ls_requestqueue);
49 mutex_unlock(&ls->ls_requestqueue_mutex);
63 int dlm_process_requestqueue(struct dlm_ls *ls)
69 mutex_lock(&ls->ls_requestqueue_mutex);
72 if (list_empty(&ls->ls_requestqueue)) {
73 mutex_unlock(&ls->ls_requestqueue_mutex);
77 e = list_entry(ls->ls_requestqueue.next, struct rq_entry, list);
78 mutex_unlock(&ls->ls_requestqueue_mutex);
82 log_limit(ls, "dlm_process_requestqueue msg %d from %d "
88 dlm_receive_message_saved(ls, &e->request, e->recover_seq);
90 mutex_lock(&ls->ls_requestqueue_mutex);
94 if (dlm_locking_stopped(ls)) {
95 log_debug(ls, "process_requestqueue abort running");
96 mutex_unlock(&ls->ls_requestqueue_mutex);
116 void dlm_wait_requestqueue(struct dlm_ls *ls)
119 mutex_lock(&ls->ls_requestqueue_mutex);
120 if (list_empty(&ls->ls_requestqueue))
122 mutex_unlock(&ls->ls_requestqueue_mutex);
125 mutex_unlock(&ls->ls_requestqueue_mutex);
128 static int purge_request(struct dlm_ls *ls, struct dlm_message *ms, int nodeid)
132 /* the ls is being cleaned up and freed by release_lockspace */
133 if (!ls->ls_count)
136 if (dlm_is_removed(ls, nodeid))
147 if (!dlm_no_directory(ls))
153 void dlm_purge_requestqueue(struct dlm_ls *ls)
158 mutex_lock(&ls->ls_requestqueue_mutex);
159 list_for_each_entry_safe(e, safe, &ls->ls_requestqueue, list) {
162 if (purge_request(ls, ms, e->nodeid)) {
167 mutex_unlock(&ls->ls_requestqueue_mutex);