Searched refs:lksb (Results 1 - 23 of 23) sorted by relevance

/linux-4.4.14/fs/ocfs2/
H A Dstack_o2cb.c166 struct ocfs2_dlm_lksb *lksb = astarg; o2dlm_lock_ast_wrapper() local
168 lksb->lksb_conn->cc_proto->lp_lock_ast(lksb); o2dlm_lock_ast_wrapper()
173 struct ocfs2_dlm_lksb *lksb = astarg; o2dlm_blocking_ast_wrapper() local
175 lksb->lksb_conn->cc_proto->lp_blocking_ast(lksb, level); o2dlm_blocking_ast_wrapper()
180 struct ocfs2_dlm_lksb *lksb = astarg; o2dlm_unlock_ast_wrapper() local
197 lksb->lksb_conn->cc_proto->lp_unlock_ast(lksb, error); o2dlm_unlock_ast_wrapper()
202 struct ocfs2_dlm_lksb *lksb, o2cb_dlm_lock()
212 status = dlmlock(conn->cc_lockspace, o2dlm_mode, &lksb->lksb_o2dlm, o2cb_dlm_lock()
214 o2dlm_lock_ast_wrapper, lksb, o2cb_dlm_lock()
221 struct ocfs2_dlm_lksb *lksb, o2cb_dlm_unlock()
228 status = dlmunlock(conn->cc_lockspace, &lksb->lksb_o2dlm, o2cb_dlm_unlock()
229 o2dlm_flags, o2dlm_unlock_ast_wrapper, lksb); o2cb_dlm_unlock()
234 static int o2cb_dlm_lock_status(struct ocfs2_dlm_lksb *lksb) o2cb_dlm_lock_status() argument
236 return dlm_status_to_errno(lksb->lksb_o2dlm.status); o2cb_dlm_lock_status()
244 static int o2cb_dlm_lvb_valid(struct ocfs2_dlm_lksb *lksb) o2cb_dlm_lvb_valid() argument
249 static void *o2cb_dlm_lvb(struct ocfs2_dlm_lksb *lksb) o2cb_dlm_lvb() argument
251 return (void *)(lksb->lksb_o2dlm.lvb); o2cb_dlm_lvb()
254 static void o2cb_dump_lksb(struct ocfs2_dlm_lksb *lksb) o2cb_dump_lksb() argument
256 dlm_print_one_lock(lksb->lksb_o2dlm.lockid); o2cb_dump_lksb()
200 o2cb_dlm_lock(struct ocfs2_cluster_connection *conn, int mode, struct ocfs2_dlm_lksb *lksb, u32 flags, void *name, unsigned int namelen) o2cb_dlm_lock() argument
220 o2cb_dlm_unlock(struct ocfs2_cluster_connection *conn, struct ocfs2_dlm_lksb *lksb, u32 flags) o2cb_dlm_unlock() argument
H A Dstackglue.h64 * include in the lksb union to make space for a combined dlm_lksb and lvb.
67 struct dlm_lksb lksb; member in struct:fsdlm_lksb_plus_lvb
91 void (*lp_lock_ast)(struct ocfs2_dlm_lksb *lksb);
92 void (*lp_blocking_ast)(struct ocfs2_dlm_lksb *lksb, int level);
93 void (*lp_unlock_ast)(struct ocfs2_dlm_lksb *lksb, int error);
169 * them to stack->sp_proto. There is no astarg. The lksb will
175 struct ocfs2_dlm_lksb *lksb,
186 * no astarg. The lksb will be passed back to the unlock ast
190 struct ocfs2_dlm_lksb *lksb,
196 * callback pulls out the stack-specific lksb, converts the status
199 int (*lock_status)(struct ocfs2_dlm_lksb *lksb);
204 int (*lvb_valid)(struct ocfs2_dlm_lksb *lksb);
207 * Pull the lvb pointer off of the stack-specific lksb.
209 void *(*lock_lvb)(struct ocfs2_dlm_lksb *lksb);
226 void (*dump_lksb)(struct ocfs2_dlm_lksb *lksb);
277 struct ocfs2_dlm_lksb *lksb,
282 struct ocfs2_dlm_lksb *lksb,
285 int ocfs2_dlm_lock_status(struct ocfs2_dlm_lksb *lksb);
286 int ocfs2_dlm_lvb_valid(struct ocfs2_dlm_lksb *lksb);
287 void *ocfs2_dlm_lvb(struct ocfs2_dlm_lksb *lksb);
288 void ocfs2_dlm_dump_lksb(struct ocfs2_dlm_lksb *lksb);
H A Dstack_user.c663 struct ocfs2_dlm_lksb *lksb = astarg; fsdlm_lock_ast_wrapper() local
664 int status = lksb->lksb_fsdlm.sb_status; fsdlm_lock_ast_wrapper()
677 lksb->lksb_conn->cc_proto->lp_unlock_ast(lksb, 0); fsdlm_lock_ast_wrapper()
679 lksb->lksb_conn->cc_proto->lp_lock_ast(lksb); fsdlm_lock_ast_wrapper()
684 struct ocfs2_dlm_lksb *lksb = astarg; fsdlm_blocking_ast_wrapper() local
686 lksb->lksb_conn->cc_proto->lp_blocking_ast(lksb, level); fsdlm_blocking_ast_wrapper()
691 struct ocfs2_dlm_lksb *lksb, user_dlm_lock()
698 if (!lksb->lksb_fsdlm.sb_lvbptr) user_dlm_lock()
699 lksb->lksb_fsdlm.sb_lvbptr = (char *)lksb + user_dlm_lock()
702 ret = dlm_lock(conn->cc_lockspace, mode, &lksb->lksb_fsdlm, user_dlm_lock()
704 fsdlm_lock_ast_wrapper, lksb, user_dlm_lock()
710 struct ocfs2_dlm_lksb *lksb, user_dlm_unlock()
715 ret = dlm_unlock(conn->cc_lockspace, lksb->lksb_fsdlm.sb_lkid, user_dlm_unlock()
716 flags, &lksb->lksb_fsdlm, lksb); user_dlm_unlock()
720 static int user_dlm_lock_status(struct ocfs2_dlm_lksb *lksb) user_dlm_lock_status() argument
722 return lksb->lksb_fsdlm.sb_status; user_dlm_lock_status()
725 static int user_dlm_lvb_valid(struct ocfs2_dlm_lksb *lksb) user_dlm_lvb_valid() argument
727 int invalid = lksb->lksb_fsdlm.sb_flags & DLM_SBF_VALNOTVALID; user_dlm_lvb_valid()
732 static void *user_dlm_lvb(struct ocfs2_dlm_lksb *lksb) user_dlm_lvb() argument
734 if (!lksb->lksb_fsdlm.sb_lvbptr) user_dlm_lvb()
735 lksb->lksb_fsdlm.sb_lvbptr = (char *)lksb + user_dlm_lvb()
737 return (void *)(lksb->lksb_fsdlm.sb_lvbptr); user_dlm_lvb()
740 static void user_dlm_dump_lksb(struct ocfs2_dlm_lksb *lksb) user_dlm_dump_lksb() argument
830 struct dlm_lksb *lksb, char *name) sync_unlock()
835 error = dlm_unlock(conn->cc_lockspace, lksb->sb_lkid, 0, lksb, conn); sync_unlock()
838 name, lksb->sb_lkid, error); sync_unlock()
844 if (lksb->sb_status != -DLM_EUNLOCK) { sync_unlock()
846 name, lksb->sb_lkid, lksb->sb_status); sync_unlock()
854 struct dlm_lksb *lksb, char *name) sync_lock()
859 error = dlm_lock(conn->cc_lockspace, mode, lksb, flags, sync_lock()
864 name, lksb->sb_lkid, flags, mode, error); sync_lock()
870 status = lksb->sb_status; sync_lock()
874 name, lksb->sb_lkid, flags, mode, status); sync_lock()
689 user_dlm_lock(struct ocfs2_cluster_connection *conn, int mode, struct ocfs2_dlm_lksb *lksb, u32 flags, void *name, unsigned int namelen) user_dlm_lock() argument
709 user_dlm_unlock(struct ocfs2_cluster_connection *conn, struct ocfs2_dlm_lksb *lksb, u32 flags) user_dlm_unlock() argument
829 sync_unlock(struct ocfs2_cluster_connection *conn, struct dlm_lksb *lksb, char *name) sync_unlock() argument
852 sync_lock(struct ocfs2_cluster_connection *conn, int mode, uint32_t flags, struct dlm_lksb *lksb, char *name) sync_lock() argument
H A Dstackglue.c237 * for the ast and bast functions. They will pass the lksb to the ast
238 * and bast. The caller can wrap the lksb with their own structure to
243 struct ocfs2_dlm_lksb *lksb, ocfs2_dlm_lock()
248 if (!lksb->lksb_conn) ocfs2_dlm_lock()
249 lksb->lksb_conn = conn; ocfs2_dlm_lock()
251 BUG_ON(lksb->lksb_conn != conn); ocfs2_dlm_lock()
252 return active_stack->sp_ops->dlm_lock(conn, mode, lksb, flags, ocfs2_dlm_lock()
258 struct ocfs2_dlm_lksb *lksb, ocfs2_dlm_unlock()
261 BUG_ON(lksb->lksb_conn == NULL); ocfs2_dlm_unlock()
263 return active_stack->sp_ops->dlm_unlock(conn, lksb, flags); ocfs2_dlm_unlock()
267 int ocfs2_dlm_lock_status(struct ocfs2_dlm_lksb *lksb) ocfs2_dlm_lock_status() argument
269 return active_stack->sp_ops->lock_status(lksb); ocfs2_dlm_lock_status()
273 int ocfs2_dlm_lvb_valid(struct ocfs2_dlm_lksb *lksb) ocfs2_dlm_lvb_valid() argument
275 return active_stack->sp_ops->lvb_valid(lksb); ocfs2_dlm_lvb_valid()
279 void *ocfs2_dlm_lvb(struct ocfs2_dlm_lksb *lksb) ocfs2_dlm_lvb() argument
281 return active_stack->sp_ops->lock_lvb(lksb); ocfs2_dlm_lvb()
285 void ocfs2_dlm_dump_lksb(struct ocfs2_dlm_lksb *lksb) ocfs2_dlm_dump_lksb() argument
287 active_stack->sp_ops->dump_lksb(lksb); ocfs2_dlm_dump_lksb()
241 ocfs2_dlm_lock(struct ocfs2_cluster_connection *conn, int mode, struct ocfs2_dlm_lksb *lksb, u32 flags, void *name, unsigned int namelen) ocfs2_dlm_lock() argument
257 ocfs2_dlm_unlock(struct ocfs2_cluster_connection *conn, struct ocfs2_dlm_lksb *lksb, u32 flags) ocfs2_dlm_unlock() argument
H A Ddlmglue.c300 static inline struct ocfs2_lock_res *ocfs2_lksb_to_lock_res(struct ocfs2_dlm_lksb *lksb) ocfs2_lksb_to_lock_res() argument
302 return container_of(lksb, struct ocfs2_lock_res, l_lksb); ocfs2_lksb_to_lock_res()
1025 static void ocfs2_blocking_ast(struct ocfs2_dlm_lksb *lksb, int level) ocfs2_blocking_ast() argument
1027 struct ocfs2_lock_res *lockres = ocfs2_lksb_to_lock_res(lksb); ocfs2_blocking_ast()
1056 static void ocfs2_locking_ast(struct ocfs2_dlm_lksb *lksb) ocfs2_locking_ast() argument
1058 struct ocfs2_lock_res *lockres = ocfs2_lksb_to_lock_res(lksb); ocfs2_locking_ast()
1073 mlog(ML_ERROR, "lockres %s: lksb status value of %d!\n", ocfs2_locking_ast()
1122 static void ocfs2_unlock_ast(struct ocfs2_dlm_lksb *lksb, int error) ocfs2_unlock_ast() argument
1124 struct ocfs2_lock_res *lockres = ocfs2_lksb_to_lock_res(lksb); ocfs2_unlock_ast()
/linux-4.4.14/fs/ocfs2/dlm/
H A Ddlmunlock.c61 struct dlm_lockstatus *lksb,
66 struct dlm_lockstatus *lksb,
72 struct dlm_lockstatus *lksb,
101 struct dlm_lockstatus *lksb, dlmunlock_common()
156 status = dlm_get_cancel_actions(dlm, res, lock, lksb, &actions); dlmunlock_common()
158 status = dlm_get_unlock_actions(dlm, res, lock, lksb, &actions); dlmunlock_common()
167 memcpy(res->lvb, lksb->lvb, DLM_LVB_LEN); dlmunlock_common()
182 status = dlm_send_remote_unlock_request(dlm, res, lock, lksb, dlmunlock_common()
262 lksb->flags &= ~(DLM_LKSB_PUT_LVB|DLM_LKSB_GET_LVB); dlmunlock_common()
270 /* leave DLM_LKSB_PUT_LVB on the lksb so any final dlm_commit_pending_unlock()
286 struct dlm_lockstatus *lksb, dlmunlock_master()
290 return dlmunlock_common(dlm, res, lock, lksb, flags, call_ast, 1); dlmunlock_master()
296 struct dlm_lockstatus *lksb, dlmunlock_remote()
299 return dlmunlock_common(dlm, res, lock, lksb, flags, call_ast, 0); dlmunlock_remote()
312 struct dlm_lockstatus *lksb, dlm_send_remote_unlock_request()
348 vec[1].iov_base = lock->lksb->lvb; dlm_send_remote_unlock_request()
400 struct dlm_lockstatus *lksb = NULL; dlm_unlock_lock_handler() local
486 lksb = lock->lksb;
493 lksb->flags |= DLM_LKSB_PUT_LVB;
494 memcpy(&lksb->lvb[0], &unlock->lvb[0], DLM_LVB_LEN);
499 status = dlmunlock_master(dlm, res, lock, lksb, flags, &ignore);
504 lksb->flags &= ~DLM_LKSB_PUT_LVB;
531 struct dlm_lockstatus *lksb, dlm_get_cancel_actions()
563 struct dlm_lockstatus *lksb, dlm_get_unlock_actions()
587 enum dlm_status dlmunlock(struct dlm_ctxt *dlm, struct dlm_lockstatus *lksb, dlmunlock() argument
595 if (!lksb) { dlmunlock()
610 if (!lksb->lockid || !lksb->lockid->lockres) { dlmunlock()
615 lock = lksb->lockid; dlmunlock()
634 status = dlmunlock_master(dlm, res, lock, lksb, flags, dlmunlock()
639 status = dlmunlock_remote(dlm, res, lock, lksb, flags, dlmunlock()
98 dlmunlock_common(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, struct dlm_lock *lock, struct dlm_lockstatus *lksb, int flags, int *call_ast, int master_node) dlmunlock_common() argument
283 dlmunlock_master(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, struct dlm_lock *lock, struct dlm_lockstatus *lksb, int flags, int *call_ast) dlmunlock_master() argument
293 dlmunlock_remote(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, struct dlm_lock *lock, struct dlm_lockstatus *lksb, int flags, int *call_ast) dlmunlock_remote() argument
309 dlm_send_remote_unlock_request(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, struct dlm_lock *lock, struct dlm_lockstatus *lksb, int flags, u8 owner) dlm_send_remote_unlock_request() argument
528 dlm_get_cancel_actions(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, struct dlm_lock *lock, struct dlm_lockstatus *lksb, int *actions) dlm_get_cancel_actions() argument
560 dlm_get_unlock_actions(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, struct dlm_lock *lock, struct dlm_lockstatus *lksb, int *actions) dlm_get_unlock_actions() argument
H A Ddlmlock.c145 lock->lksb->status = DLM_NORMAL; dlmlock_master()
204 lock->lksb->flags &= ~DLM_LKSB_GET_LVB; dlm_revert_pending_lock()
367 mlog(0, "freeing kernel-allocated lksb\n"); dlm_lock_release()
368 kfree(lock->lksb); dlm_lock_release()
424 struct dlm_lockstatus *lksb) dlm_new_lock()
433 if (!lksb) { dlm_new_lock()
435 lksb = kzalloc(sizeof(*lksb), GFP_NOFS); dlm_new_lock()
436 if (!lksb) { dlm_new_lock()
446 lock->lksb = lksb; dlm_new_lock()
447 lksb->lockid = lock; dlm_new_lock()
465 struct dlm_lockstatus *lksb = NULL; dlm_create_lock_handler() local
501 lksb = newlock->lksb; dlm_create_lock_handler()
504 lksb->flags |= DLM_LKSB_GET_LVB; dlm_create_lock_handler()
559 struct dlm_lockstatus *lksb, int flags, dlmlock()
571 if (!lksb) { dlmlock()
604 lock = lksb->lockid; dlmlock()
619 /* XXX: for ocfs2 purposes, the ast/bast/astdata/lksb are dlmlock()
624 if (lock->lksb != lksb || lock->ast != ast || dlmlock()
627 mlog(ML_ERROR, "new args: lksb=%p, ast=%p, bast=%p, " dlmlock()
628 "astdata=%p\n", lksb, ast, bast, data); dlmlock()
629 mlog(ML_ERROR, "orig args: lksb=%p, ast=%p, bast=%p, " dlmlock()
630 "astdata=%p\n", lock->lksb, lock->ast, dlmlock()
669 lock = dlm_new_lock(mode, dlm->node_num, tmpcookie, lksb); dlmlock()
704 lock->lksb->flags |= DLM_LKSB_GET_LVB; dlmlock()
739 lock->lksb->flags &= ~DLM_LKSB_GET_LVB; dlmlock()
751 lksb->status = status; dlmlock()
423 dlm_new_lock(int type, u8 node, u64 cookie, struct dlm_lockstatus *lksb) dlm_new_lock() argument
558 dlmlock(struct dlm_ctxt *dlm, int mode, struct dlm_lockstatus *lksb, int flags, const char *name, int namelen, dlm_astlockfunc_t *ast, void *data, dlm_bastlockfunc_t *bast) dlmlock() argument
H A Ddlmast.c196 struct dlm_lockstatus *lksb = lock->lksb; dlm_update_lvb() local
197 BUG_ON(!lksb); dlm_update_lvb()
202 /* check the lksb flags for the direction */ dlm_update_lvb()
203 if (lksb->flags & DLM_LKSB_GET_LVB) { dlm_update_lvb()
207 memcpy(lksb->lvb, res->lvb, DLM_LVB_LEN); dlm_update_lvb()
219 /* reset any lvb flags on the lksb */ dlm_update_lvb()
220 lksb->flags &= ~(DLM_LKSB_PUT_LVB|DLM_LKSB_GET_LVB); dlm_update_lvb()
227 struct dlm_lockstatus *lksb; dlm_do_local_ast() local
234 lksb = lock->lksb; dlm_do_local_ast()
247 struct dlm_lockstatus *lksb; dlm_do_remote_ast() local
255 lksb = lock->lksb; dlm_do_remote_ast()
258 lksbflags = lksb->flags; dlm_do_remote_ast()
425 lock->lksb->status = DLM_NORMAL;
427 /* if we requested the lvb, fetch it into our lksb now */
429 BUG_ON(!(lock->lksb->flags & DLM_LKSB_GET_LVB));
430 memcpy(lock->lksb->lvb, past->lvb, DLM_LVB_LEN);
477 vec[1].iov_base = lock->lksb->lvb; dlm_send_proxy_ast_msg()
H A Ddlmconvert.c158 lock->lksb->flags |= DLM_LKSB_PUT_LVB; __dlmconvert_master()
168 lock->lksb->flags |= DLM_LKSB_GET_LVB; __dlmconvert_master()
208 lock->lksb->status = DLM_NORMAL; __dlmconvert_master()
212 if (lock->lksb->flags & DLM_LKSB_PUT_LVB) __dlmconvert_master()
213 memcpy(res->lvb, lock->lksb->lvb, DLM_LVB_LEN); __dlmconvert_master()
250 lock->lksb->flags &= ~(DLM_LKSB_GET_LVB|DLM_LKSB_PUT_LVB); dlm_revert_pending_convert()
314 lock->lksb->flags |= DLM_LKSB_PUT_LVB; dlmconvert_remote()
320 lock->lksb->flags |= DLM_LKSB_GET_LVB; dlmconvert_remote()
391 vec[1].iov_base = lock->lksb->lvb; dlm_send_remote_convert_request()
448 struct dlm_lockstatus *lksb; dlm_convert_lock_handler() local
513 lksb = lock->lksb; dlm_convert_lock_handler()
517 BUG_ON(lksb->flags & (DLM_LKSB_PUT_LVB|DLM_LKSB_GET_LVB)); dlm_convert_lock_handler()
518 lksb->flags |= DLM_LKSB_PUT_LVB; dlm_convert_lock_handler()
519 memcpy(&lksb->lvb[0], &cnv->lvb[0], DLM_LVB_LEN); dlm_convert_lock_handler()
521 BUG_ON(lksb->flags & (DLM_LKSB_PUT_LVB|DLM_LKSB_GET_LVB)); dlm_convert_lock_handler()
522 lksb->flags |= DLM_LKSB_GET_LVB; dlm_convert_lock_handler()
544 lksb->flags &= ~(DLM_LKSB_GET_LVB|DLM_LKSB_PUT_LVB); dlm_convert_lock_handler()
H A Ddlmrecovery.c1194 if (!lock->lksb) dlm_prepare_lvb_for_migration()
1206 memcpy(mres->lvb, lock->lksb->lvb, DLM_LVB_LEN); dlm_prepare_lvb_for_migration()
1211 if (!memcmp(mres->lvb, lock->lksb->lvb, DLM_LVB_LEN)) dlm_prepare_lvb_for_migration()
1238 if (lock->lksb) { dlm_add_lock_to_array()
1239 ml->flags = lock->lksb->flags; dlm_add_lock_to_array()
1259 dummy.lksb = NULL; dlm_add_dummy_lock()
1786 struct dlm_lockstatus *lksb = NULL; dlm_process_recovery_data() local
1812 lksb = NULL; dlm_process_recovery_data()
1908 lksb = newlock->lksb;
1915 lksb->flags |= (ml->flags &
1929 if (lksb->flags & DLM_LKSB_PUT_LVB) {
1932 * lksb with the updated lvb. */
1933 memcpy(lksb->lvb, mres->lvb, DLM_LVB_LEN);
2225 /* zero the lksb lvb and lockres lvb */ list_for_each_entry()
2227 memset(lock->lksb->lvb, 0, DLM_LVB_LEN); list_for_each_entry()
2530 struct dlm_lockstatus lksb; dlm_pick_recovery_master() local
2536 memset(&lksb, 0, sizeof(lksb)); dlm_pick_recovery_master()
2538 ret = dlmlock(dlm, LKM_EXMODE, &lksb, LKM_NOQUEUE|LKM_RECOVERY, dlm_pick_recovery_master()
2542 mlog(0, "%s: dlmlock($RECOVERY) returned %d, lksb=%d\n", dlm_pick_recovery_master()
2543 dlm->name, ret, lksb.status); dlm_pick_recovery_master()
2594 ret = dlmunlock(dlm, &lksb, 0, dlm_reco_unlock_ast, dlm); dlm_pick_recovery_master()
2597 ret = dlmunlock(dlm, &lksb, LKM_CANCEL, dlm_reco_unlock_ast, dlm); dlm_pick_recovery_master()
2635 "lksb.status=%s\n", dlm->name, dlm_errname(ret), dlm_pick_recovery_master()
2636 dlm_errname(lksb.status)); dlm_pick_recovery_master()
H A Ddlmapi.h182 struct dlm_lockstatus *lksb,
191 struct dlm_lockstatus *lksb,
H A Ddlmthread.c379 BUG_ON(!target->lksb); dlm_shuffle_lists()
380 target->lksb->status = DLM_NORMAL; dlm_shuffle_lists()
439 BUG_ON(!target->lksb); dlm_shuffle_lists()
440 target->lksb->status = DLM_NORMAL; dlm_shuffle_lists()
H A Ddlmcommon.h369 struct dlm_lockstatus *lksb; member in struct:dlm_lock
829 struct dlm_lockstatus *lksb);
/linux-4.4.14/fs/dlm/
H A Dmemory.c89 if (ua->lksb.sb_lvbptr) dlm_free_lkb()
90 kfree(ua->lksb.sb_lvbptr); dlm_free_lkb()
H A Duser.c49 __u32 lksb; member in struct:dlm_lock_params32
80 struct dlm_lksb32 lksb; member in struct:dlm_lock_result32
117 kb->i.lock.lksb = (void *)(long)kb32->i.lock.lksb; compat_input()
138 res32->lksb.sb_status = res->lksb.sb_status; compat_output()
139 res32->lksb.sb_flags = res->lksb.sb_flags; compat_output()
140 res32->lksb.sb_lkid = res->lksb.sb_lkid; compat_output()
141 res32->lksb.sb_lvbptr = (__u32)(long)res->lksb.sb_lvbptr; compat_output()
248 if (!params->castaddr || !params->lksb) { device_user_lock()
257 ua->user_lksb = params->lksb; device_user_lock()
283 error = ua->lksb.sb_lkid; device_user_lock()
305 ua->user_lksb = params->lksb; device_user_unlock()
704 memcpy(&result.lksb, &ua->lksb, sizeof(struct dlm_lksb)); copy_result_to_user()
733 if (copy_lvb && ua->lksb.sb_lvbptr && count >= len + DLM_USER_LVB_LEN) { copy_result_to_user()
734 if (copy_to_user(buf+len, ua->lksb.sb_lvbptr, copy_result_to_user()
H A Ddlm_internal.h146 struct dlm_lksb *lksb; member in struct:dlm_args
176 * the caller's lksb.sb_flags prior to the dlm_lock/dlm_unlock completion
221 int sb_status; /* copy to lksb status */
222 uint8_t sb_flags; /* copy to lksb flags */
234 uint32_t lkb_sbflags; /* lksb flags */
669 struct dlm_lksb lksb; member in struct:dlm_user_args
H A Dlock.c1258 /* for local/process lkbs, lvbptr points to caller's lksb */ __put_lkb()
2235 * flag set and return DEMOTED in the lksb flags.
2805 static int set_lock_args(int mode, struct dlm_lksb *lksb, uint32_t flags, set_lock_args() argument
2846 if (!ast || !lksb) set_lock_args()
2849 if (flags & DLM_LKF_VALBLK && !lksb->sb_lvbptr) set_lock_args()
2852 if (flags & DLM_LKF_CONVERT && !lksb->sb_lkid) set_lock_args()
2865 args->lksb = lksb; set_lock_args()
2915 lkb->lkb_lksb = args->lksb; validate_lock_args()
2916 lkb->lkb_lvbptr = args->lksb->sb_lvbptr; validate_lock_args()
3411 struct dlm_lksb *lksb, dlm_lock()
3432 error = find_lkb(ls, lksb->sb_lkid, &lkb); dlm_lock()
3439 error = set_lock_args(mode, lksb, flags, namelen, 0, ast, dlm_lock()
3465 struct dlm_lksb *lksb, dlm_unlock()
5787 ua->lksb.sb_lvbptr = kzalloc(DLM_USER_LVB_LEN, GFP_NOFS); dlm_user_request()
5788 if (!ua->lksb.sb_lvbptr) { dlm_user_request()
5800 error = set_lock_args(mode, &ua->lksb, flags, namelen, timeout_cs, dlm_user_request()
5855 if (flags & DLM_LKF_VALBLK && !ua->lksb.sb_lvbptr) { dlm_user_convert()
5856 ua->lksb.sb_lvbptr = kzalloc(DLM_USER_LVB_LEN, GFP_NOFS); dlm_user_convert()
5857 if (!ua->lksb.sb_lvbptr) { dlm_user_convert()
5862 if (lvb_in && ua->lksb.sb_lvbptr) dlm_user_convert()
5863 memcpy(ua->lksb.sb_lvbptr, lvb_in, DLM_USER_LVB_LEN); dlm_user_convert()
5872 error = set_lock_args(mode, &ua->lksb, flags, 0, timeout_cs, dlm_user_convert()
5977 if (lvb_in && ua->lksb.sb_lvbptr) dlm_user_unlock()
5978 memcpy(ua->lksb.sb_lvbptr, lvb_in, DLM_USER_LVB_LEN); dlm_user_unlock()
3409 dlm_lock(dlm_lockspace_t *lockspace, int mode, struct dlm_lksb *lksb, uint32_t flags, void *name, unsigned int namelen, uint32_t parent_lkid, void (*ast) (void *astarg), void *astarg, void (*bast) (void *astarg, int mode)) dlm_lock() argument
3462 dlm_unlock(dlm_lockspace_t *lockspace, uint32_t lkid, uint32_t flags, struct dlm_lksb *lksb, void *astarg) dlm_unlock() argument
/linux-4.4.14/include/uapi/linux/
H A Ddlm_device.h45 struct dlm_lksb __user *lksb; member in struct:dlm_lock_params
87 struct dlm_lksb lksb; member in struct:dlm_lock_result
H A Ddlmconstants.h123 * requested mode, DLM_SBF_ALTMODE is returned in the lksb.
/linux-4.4.14/include/linux/
H A Ddlm.h106 * lksb: lock status block for input and async return values
125 * when the locking is complete and the status is returned in the lksb.
137 struct dlm_lksb *lksb,
153 * lkid: the lock ID as returned in the lksb
155 * lksb: if NULL the lksb parameter passed to last lock request is used
169 struct dlm_lksb *lksb,
/linux-4.4.14/fs/ocfs2/dlmfs/
H A Duserdlm.c45 static inline struct user_lock_res *user_lksb_to_lock_res(struct ocfs2_dlm_lksb *lksb) user_lksb_to_lock_res() argument
47 return container_of(lksb, struct user_lock_res, l_lksb); user_lksb_to_lock_res()
126 static void user_ast(struct ocfs2_dlm_lksb *lksb) user_ast() argument
128 struct user_lock_res *lockres = user_lksb_to_lock_res(lksb); user_ast()
139 mlog(ML_ERROR, "lksb status value of %u on lockres %.*s\n", user_ast()
214 static void user_bast(struct ocfs2_dlm_lksb *lksb, int level) user_bast() argument
216 struct user_lock_res *lockres = user_lksb_to_lock_res(lksb); user_bast()
232 static void user_unlock_ast(struct ocfs2_dlm_lksb *lksb, int status) user_unlock_ast() argument
234 struct user_lock_res *lockres = user_lksb_to_lock_res(lksb); user_unlock_ast()
/linux-4.4.14/drivers/md/
H A Dmd-cluster.c25 struct dlm_lksb lksb; member in struct:dlm_lock_resource
104 ret = dlm_lock(res->ls, mode, &res->lksb, dlm_lock_sync()
110 if (res->lksb.sb_status == 0) dlm_lock_sync()
112 return res->lksb.sb_status; dlm_lock_sync()
142 res->lksb.sb_lvbptr = kzalloc(LVB_SIZE, GFP_KERNEL); lockres_init()
143 if (!res->lksb.sb_lvbptr) { lockres_init()
165 kfree(res->lksb.sb_lvbptr); lockres_init()
181 ret = dlm_unlock(res->ls, res->lksb.sb_lkid, 0, &res->lksb, res); lockres_free()
194 kfree(res->lksb.sb_lvbptr); lockres_free()
203 ri = (struct resync_info *)lockres->lksb.sb_lvbptr; add_resync_info()
215 memcpy(&ri, lockres->lksb.sb_lvbptr, sizeof(struct resync_info)); read_resync_info()
512 memcpy(&msg, message_lockres->lksb.sb_lvbptr, sizeof(struct cluster_msg)); recv_daemon()
585 memcpy(cinfo->message_lockres->lksb.sb_lvbptr, (void *)cmsg, __sendmsg()
655 memset(bm_lockres->lksb.sb_lvbptr, '\0', LVB_SIZE); gather_all_resync_info()
/linux-4.4.14/fs/gfs2/
H A Dlock_dlm.c498 static int sync_unlock(struct gfs2_sbd *sdp, struct dlm_lksb *lksb, char *name) sync_unlock() argument
503 error = dlm_unlock(ls->ls_dlm, lksb->sb_lkid, 0, lksb, ls); sync_unlock()
506 name, lksb->sb_lkid, error); sync_unlock()
512 if (lksb->sb_status != -DLM_EUNLOCK) { sync_unlock()
514 name, lksb->sb_lkid, lksb->sb_status); sync_unlock()
521 unsigned int num, struct dlm_lksb *lksb, char *name) sync_lock()
530 error = dlm_lock(ls->ls_dlm, mode, lksb, flags, sync_lock()
535 name, lksb->sb_lkid, flags, mode, error); sync_lock()
541 status = lksb->sb_status; sync_lock()
545 name, lksb->sb_lkid, flags, mode, status); sync_lock()
520 sync_lock(struct gfs2_sbd *sdp, int mode, uint32_t flags, unsigned int num, struct dlm_lksb *lksb, char *name) sync_lock() argument

Completed in 913 milliseconds