Lines Matching refs:lkb

177 void dlm_user_add_ast(struct dlm_lkb *lkb, uint32_t flags, int mode,  in dlm_user_add_ast()  argument
185 if (lkb->lkb_flags & (DLM_IFL_ORPHAN | DLM_IFL_DEAD)) in dlm_user_add_ast()
188 ls = lkb->lkb_resource->res_ls; in dlm_user_add_ast()
197 if (lkb->lkb_flags & (DLM_IFL_ORPHAN | DLM_IFL_DEAD)) in dlm_user_add_ast()
200 DLM_ASSERT(lkb->lkb_ua, dlm_print_lkb(lkb);); in dlm_user_add_ast()
201 ua = lkb->lkb_ua; in dlm_user_add_ast()
208 lkb->lkb_flags |= DLM_IFL_ENDOFLIFE; in dlm_user_add_ast()
212 rv = dlm_add_lkb_callback(lkb, flags, mode, status, sbflags, seq); in dlm_user_add_ast()
218 if (list_empty(&lkb->lkb_cb_list)) { in dlm_user_add_ast()
219 kref_get(&lkb->lkb_ref); in dlm_user_add_ast()
220 list_add_tail(&lkb->lkb_cb_list, &proc->asts); in dlm_user_add_ast()
225 if (lkb->lkb_flags & DLM_IFL_ENDOFLIFE) { in dlm_user_add_ast()
228 if (!list_empty(&lkb->lkb_ownqueue)) { in dlm_user_add_ast()
229 list_del_init(&lkb->lkb_ownqueue); in dlm_user_add_ast()
230 dlm_put_lkb(lkb); in dlm_user_add_ast()
801 struct dlm_lkb *lkb; in device_read() local
860 lkb = list_entry(proc->asts.next, struct dlm_lkb, lkb_cb_list); in device_read()
863 old_mode = lkb->lkb_last_cast.mode; in device_read()
865 rv = dlm_rem_lkb_callback(lkb->lkb_resource->res_ls, lkb, &cb, &resid); in device_read()
869 log_print("dlm_rem_lkb_callback empty %x", lkb->lkb_id); in device_read()
870 list_del_init(&lkb->lkb_cb_list); in device_read()
873 dlm_put_lkb(lkb); in device_read()
877 list_del_init(&lkb->lkb_cb_list); in device_read()
883 dlm_put_lkb(lkb); in device_read()
888 trace_dlm_bast(lkb->lkb_resource->res_ls, lkb, cb.mode); in device_read()
892 if (!cb.sb_status && lkb->lkb_lksb->sb_lvbptr && in device_read()
896 lkb->lkb_lksb->sb_status = cb.sb_status; in device_read()
897 lkb->lkb_lksb->sb_flags = cb.sb_flags; in device_read()
898 trace_dlm_ast(lkb->lkb_resource->res_ls, lkb); in device_read()
901 rv = copy_result_to_user(lkb->lkb_ua, in device_read()
907 dlm_put_lkb(lkb); in device_read()