Lines Matching refs:gr
136 #define modes_compat(gr, rq) \ argument
137 __dlm_compat_matrix[(gr)->lkb_grmode + 1][(rq)->lkb_rqmode + 1]
2596 static int lock_requires_bast(struct dlm_lkb *gr, int high, int cw) in lock_requires_bast() argument
2598 if (gr->lkb_grmode == DLM_LOCK_PR && cw) { in lock_requires_bast()
2599 if (gr->lkb_highbast < DLM_LOCK_EX) in lock_requires_bast()
2604 if (gr->lkb_highbast < high && in lock_requires_bast()
2605 !__dlm_compat_matrix[gr->lkb_grmode+1][high+1]) in lock_requires_bast()
2646 static int modes_require_bast(struct dlm_lkb *gr, struct dlm_lkb *rq) in modes_require_bast() argument
2648 if ((gr->lkb_grmode == DLM_LOCK_PR && rq->lkb_rqmode == DLM_LOCK_CW) || in modes_require_bast()
2649 (gr->lkb_grmode == DLM_LOCK_CW && rq->lkb_rqmode == DLM_LOCK_PR)) { in modes_require_bast()
2650 if (gr->lkb_highbast < DLM_LOCK_EX) in modes_require_bast()
2655 if (gr->lkb_highbast < rq->lkb_rqmode && !modes_compat(gr, rq)) in modes_require_bast()
2663 struct dlm_lkb *gr; in send_bast_queue() local
2665 list_for_each_entry(gr, head, lkb_statequeue) { in send_bast_queue()
2667 if (gr == lkb) in send_bast_queue()
2669 if (gr->lkb_bastfn && modes_require_bast(gr, lkb)) { in send_bast_queue()
2670 queue_bast(r, gr, lkb->lkb_rqmode); in send_bast_queue()
2671 gr->lkb_highbast = lkb->lkb_rqmode; in send_bast_queue()