• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/fs/ocfs2/cluster/

Lines Matching defs:qs

109 	struct o2quo_state *qs = &o2quo_state;
111 spin_lock(&qs->qs_lock);
113 lowest_hb = find_first_bit(qs->qs_hb_bm, O2NM_MAX_NODES);
115 lowest_reachable = test_bit(lowest_hb, qs->qs_conn_bm);
118 "lowest: %d (%sreachable)\n", qs->qs_heartbeating,
119 qs->qs_connected, lowest_hb, lowest_reachable ? "" : "un");
121 if (!test_bit(o2nm_this_node(), qs->qs_hb_bm) ||
122 qs->qs_heartbeating == 1)
125 if (qs->qs_heartbeating & 1) {
128 quorum = (qs->qs_heartbeating + 1)/2;
129 if (qs->qs_connected < quorum) {
133 qs->qs_connected, quorum,
134 qs->qs_heartbeating);
142 quorum = qs->qs_heartbeating / 2;
143 if (qs->qs_connected < quorum) {
147 qs->qs_connected, quorum,
148 qs->qs_heartbeating);
151 else if ((qs->qs_connected == quorum) &&
156 "node %u\n", quorum, qs->qs_heartbeating,
163 spin_unlock(&qs->qs_lock);
168 static void o2quo_set_hold(struct o2quo_state *qs, u8 node)
170 assert_spin_locked(&qs->qs_lock);
172 if (!test_and_set_bit(node, qs->qs_hold_bm)) {
173 qs->qs_holds++;
174 mlog_bug_on_msg(qs->qs_holds == O2NM_MAX_NODES,
176 mlog(0, "node %u, %d total\n", node, qs->qs_holds);
180 static void o2quo_clear_hold(struct o2quo_state *qs, u8 node)
182 assert_spin_locked(&qs->qs_lock);
184 if (test_and_clear_bit(node, qs->qs_hold_bm)) {
185 mlog(0, "node %u, %d total\n", node, qs->qs_holds - 1);
186 if (--qs->qs_holds == 0) {
187 if (qs->qs_pending) {
188 qs->qs_pending = 0;
189 schedule_work(&qs->qs_work);
192 mlog_bug_on_msg(qs->qs_holds < 0, "node %u, holds %d\n",
193 node, qs->qs_holds);
203 struct o2quo_state *qs = &o2quo_state;
205 spin_lock(&qs->qs_lock);
207 qs->qs_heartbeating++;
208 mlog_bug_on_msg(qs->qs_heartbeating == O2NM_MAX_NODES,
210 mlog_bug_on_msg(test_bit(node, qs->qs_hb_bm), "node %u\n", node);
211 set_bit(node, qs->qs_hb_bm);
213 mlog(0, "node %u, %d total\n", node, qs->qs_heartbeating);
215 if (!test_bit(node, qs->qs_conn_bm))
216 o2quo_set_hold(qs, node);
218 o2quo_clear_hold(qs, node);
220 spin_unlock(&qs->qs_lock);
227 struct o2quo_state *qs = &o2quo_state;
229 spin_lock(&qs->qs_lock);
231 qs->qs_heartbeating--;
232 mlog_bug_on_msg(qs->qs_heartbeating < 0,
234 node, qs->qs_heartbeating);
235 mlog_bug_on_msg(!test_bit(node, qs->qs_hb_bm), "node %u\n", node);
236 clear_bit(node, qs->qs_hb_bm);
238 mlog(0, "node %u, %d total\n", node, qs->qs_heartbeating);
240 o2quo_clear_hold(qs, node);
242 spin_unlock(&qs->qs_lock);
252 struct o2quo_state *qs = &o2quo_state;
254 spin_lock(&qs->qs_lock);
258 qs->qs_pending = 1;
259 o2quo_clear_hold(qs, node);
261 spin_unlock(&qs->qs_lock);
271 struct o2quo_state *qs = &o2quo_state;
273 spin_lock(&qs->qs_lock);
275 qs->qs_connected++;
276 mlog_bug_on_msg(qs->qs_connected == O2NM_MAX_NODES,
278 mlog_bug_on_msg(test_bit(node, qs->qs_conn_bm), "node %u\n", node);
279 set_bit(node, qs->qs_conn_bm);
281 mlog(0, "node %u, %d total\n", node, qs->qs_connected);
283 if (!test_bit(node, qs->qs_hb_bm))
284 o2quo_set_hold(qs, node);
286 o2quo_clear_hold(qs, node);
288 spin_unlock(&qs->qs_lock);
297 struct o2quo_state *qs = &o2quo_state;
299 spin_lock(&qs->qs_lock);
301 if (test_bit(node, qs->qs_conn_bm)) {
302 qs->qs_connected--;
303 mlog_bug_on_msg(qs->qs_connected < 0,
305 node, qs->qs_connected);
307 clear_bit(node, qs->qs_conn_bm);
310 mlog(0, "node %u, %d total\n", node, qs->qs_connected);
312 if (test_bit(node, qs->qs_hb_bm))
313 o2quo_set_hold(qs, node);
315 spin_unlock(&qs->qs_lock);
320 struct o2quo_state *qs = &o2quo_state;
322 spin_lock_init(&qs->qs_lock);
323 INIT_WORK(&qs->qs_work, o2quo_make_decision);