Lines Matching full:ls
33 void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, struct dlm_message *ms) in dlm_add_requestqueue() argument
45 e->recover_seq = ls->ls_recover_seq & 0xFFFFFFFF; in dlm_add_requestqueue()
49 atomic_inc(&ls->ls_requestqueue_cnt); in dlm_add_requestqueue()
50 mutex_lock(&ls->ls_requestqueue_mutex); in dlm_add_requestqueue()
51 list_add_tail(&e->list, &ls->ls_requestqueue); in dlm_add_requestqueue()
52 mutex_unlock(&ls->ls_requestqueue_mutex); in dlm_add_requestqueue()
66 int dlm_process_requestqueue(struct dlm_ls *ls) in dlm_process_requestqueue() argument
72 mutex_lock(&ls->ls_requestqueue_mutex); in dlm_process_requestqueue()
75 if (list_empty(&ls->ls_requestqueue)) { in dlm_process_requestqueue()
76 mutex_unlock(&ls->ls_requestqueue_mutex); in dlm_process_requestqueue()
80 e = list_entry(ls->ls_requestqueue.next, struct rq_entry, list); in dlm_process_requestqueue()
81 mutex_unlock(&ls->ls_requestqueue_mutex); in dlm_process_requestqueue()
85 log_limit(ls, "dlm_process_requestqueue msg %d from %d " in dlm_process_requestqueue()
93 dlm_receive_message_saved(ls, &e->request, e->recover_seq); in dlm_process_requestqueue()
95 mutex_lock(&ls->ls_requestqueue_mutex); in dlm_process_requestqueue()
97 if (atomic_dec_and_test(&ls->ls_requestqueue_cnt)) in dlm_process_requestqueue()
98 wake_up(&ls->ls_requestqueue_wait); in dlm_process_requestqueue()
101 if (dlm_locking_stopped(ls)) { in dlm_process_requestqueue()
102 log_debug(ls, "process_requestqueue abort running"); in dlm_process_requestqueue()
103 mutex_unlock(&ls->ls_requestqueue_mutex); in dlm_process_requestqueue()
123 void dlm_wait_requestqueue(struct dlm_ls *ls) in dlm_wait_requestqueue() argument
125 wait_event(ls->ls_requestqueue_wait, in dlm_wait_requestqueue()
126 atomic_read(&ls->ls_requestqueue_cnt) == 0); in dlm_wait_requestqueue()
129 static int purge_request(struct dlm_ls *ls, struct dlm_message *ms, int nodeid) in purge_request() argument
133 /* the ls is being cleaned up and freed by release_lockspace */ in purge_request()
134 if (!atomic_read(&ls->ls_count)) in purge_request()
137 if (dlm_is_removed(ls, nodeid)) in purge_request()
148 if (!dlm_no_directory(ls)) in purge_request()
154 void dlm_purge_requestqueue(struct dlm_ls *ls) in dlm_purge_requestqueue() argument
159 mutex_lock(&ls->ls_requestqueue_mutex); in dlm_purge_requestqueue()
160 list_for_each_entry_safe(e, safe, &ls->ls_requestqueue, list) { in dlm_purge_requestqueue()
163 if (purge_request(ls, ms, e->nodeid)) { in dlm_purge_requestqueue()
165 if (atomic_dec_and_test(&ls->ls_requestqueue_cnt)) in dlm_purge_requestqueue()
166 wake_up(&ls->ls_requestqueue_wait); in dlm_purge_requestqueue()
170 mutex_unlock(&ls->ls_requestqueue_mutex); in dlm_purge_requestqueue()