Lines Matching refs:lkb
175 void dlm_user_add_ast(struct dlm_lkb *lkb, uint32_t flags, int mode, in dlm_user_add_ast() argument
183 if (lkb->lkb_flags & (DLM_IFL_ORPHAN | DLM_IFL_DEAD)) in dlm_user_add_ast()
186 ls = lkb->lkb_resource->res_ls; in dlm_user_add_ast()
195 if (lkb->lkb_flags & (DLM_IFL_ORPHAN | DLM_IFL_DEAD)) in dlm_user_add_ast()
198 DLM_ASSERT(lkb->lkb_ua, dlm_print_lkb(lkb);); in dlm_user_add_ast()
199 ua = lkb->lkb_ua; in dlm_user_add_ast()
206 lkb->lkb_flags |= DLM_IFL_ENDOFLIFE; in dlm_user_add_ast()
210 rv = dlm_add_lkb_callback(lkb, flags, mode, status, sbflags, seq); in dlm_user_add_ast()
216 if (list_empty(&lkb->lkb_cb_list)) { in dlm_user_add_ast()
217 kref_get(&lkb->lkb_ref); in dlm_user_add_ast()
218 list_add_tail(&lkb->lkb_cb_list, &proc->asts); in dlm_user_add_ast()
223 if (lkb->lkb_flags & DLM_IFL_ENDOFLIFE) { in dlm_user_add_ast()
226 if (!list_empty(&lkb->lkb_ownqueue)) { in dlm_user_add_ast()
227 list_del_init(&lkb->lkb_ownqueue); in dlm_user_add_ast()
228 dlm_put_lkb(lkb); in dlm_user_add_ast()
780 struct dlm_lkb *lkb; in device_read() local
839 lkb = list_entry(proc->asts.next, struct dlm_lkb, lkb_cb_list); in device_read()
842 old_mode = lkb->lkb_last_cast.mode; in device_read()
844 rv = dlm_rem_lkb_callback(lkb->lkb_resource->res_ls, lkb, &cb, &resid); in device_read()
848 log_print("dlm_rem_lkb_callback empty %x", lkb->lkb_id); in device_read()
849 list_del_init(&lkb->lkb_cb_list); in device_read()
852 dlm_put_lkb(lkb); in device_read()
856 list_del_init(&lkb->lkb_cb_list); in device_read()
862 dlm_put_lkb(lkb); in device_read()
869 if (!cb.sb_status && lkb->lkb_lksb->sb_lvbptr && in device_read()
873 lkb->lkb_lksb->sb_status = cb.sb_status; in device_read()
874 lkb->lkb_lksb->sb_flags = cb.sb_flags; in device_read()
877 rv = copy_result_to_user(lkb->lkb_ua, in device_read()
883 dlm_put_lkb(lkb); in device_read()