Lines Matching refs:lock

60 					   struct dlm_lock *lock, int flags,
65 struct dlm_lock *lock, int flags, int type);
78 struct dlm_lock *lock, int flags, int type) in dlmconvert_master() argument
89 status = __dlmconvert_master(dlm, res, lock, flags, type, in dlmconvert_master()
100 dlm_queue_ast(dlm, lock); in dlmconvert_master()
121 struct dlm_lock *lock, int flags, in __dlmconvert_master() argument
131 lock->ml.type, lock->ml.convert_type, type); in __dlmconvert_master()
133 spin_lock(&lock->spinlock); in __dlmconvert_master()
136 if (lock->ml.convert_type != LKM_IVMODE) { in __dlmconvert_master()
144 if (!dlm_lock_on_list(&res->granted, lock)) { in __dlmconvert_master()
152 switch (lock->ml.type) { in __dlmconvert_master()
156 dlm_lock_mode_name(lock->ml.type), in __dlmconvert_master()
158 lock->lksb->flags |= DLM_LKSB_PUT_LVB; in __dlmconvert_master()
166 dlm_lock_mode_name(lock->ml.type), in __dlmconvert_master()
168 lock->lksb->flags |= DLM_LKSB_GET_LVB; in __dlmconvert_master()
172 dlm_lock_mode_name(lock->ml.type), in __dlmconvert_master()
182 if (type <= lock->ml.type) in __dlmconvert_master()
188 if (tmplock == lock) in __dlmconvert_master()
208 lock->lksb->status = DLM_NORMAL; in __dlmconvert_master()
209 if (lock->ml.node == dlm->node_num) in __dlmconvert_master()
211 lock->ml.type = type; in __dlmconvert_master()
212 if (lock->lksb->flags & DLM_LKSB_PUT_LVB) in __dlmconvert_master()
213 memcpy(res->lvb, lock->lksb->lvb, DLM_LVB_LEN); in __dlmconvert_master()
223 lock->ml.type, type); in __dlmconvert_master()
230 lock->ml.convert_type = type; in __dlmconvert_master()
232 list_move_tail(&lock->list, &res->converting); in __dlmconvert_master()
235 spin_unlock(&lock->spinlock); in __dlmconvert_master()
245 struct dlm_lock *lock) in dlm_revert_pending_convert() argument
248 list_move_tail(&lock->list, &res->granted); in dlm_revert_pending_convert()
249 lock->ml.convert_type = LKM_IVMODE; in dlm_revert_pending_convert()
250 lock->lksb->flags &= ~(DLM_LKSB_GET_LVB|DLM_LKSB_PUT_LVB); in dlm_revert_pending_convert()
262 struct dlm_lock *lock, int flags, int type) in dlmconvert_remote() argument
267 mlog(0, "type=%d, convert_type=%d, busy=%d\n", lock->ml.type, in dlmconvert_remote()
268 lock->ml.convert_type, res->state & DLM_LOCK_RES_IN_PROGRESS); in dlmconvert_remote()
281 if (lock->ml.convert_type != LKM_IVMODE) { in dlmconvert_remote()
285 dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)), in dlmconvert_remote()
286 dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)), in dlmconvert_remote()
287 lock->ml.convert_type); in dlmconvert_remote()
292 if (lock->ml.type == type && lock->ml.convert_type == LKM_IVMODE) { in dlmconvert_remote()
297 dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)), in dlmconvert_remote()
298 dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)), in dlmconvert_remote()
299 lock->ml.type, lock->ml.convert_type); in dlmconvert_remote()
307 list_move_tail(&lock->list, &res->converting); in dlmconvert_remote()
308 lock->convert_pending = 1; in dlmconvert_remote()
309 lock->ml.convert_type = type; in dlmconvert_remote()
312 if (lock->ml.type == LKM_EXMODE) { in dlmconvert_remote()
314 lock->lksb->flags |= DLM_LKSB_PUT_LVB; in dlmconvert_remote()
316 if (lock->ml.convert_type == LKM_NLMODE) in dlmconvert_remote()
320 lock->lksb->flags |= DLM_LKSB_GET_LVB; in dlmconvert_remote()
328 status = dlm_send_remote_convert_request(dlm, res, lock, flags, type); in dlmconvert_remote()
332 lock->convert_pending = 0; in dlmconvert_remote()
340 dlm_revert_pending_convert(res, lock); in dlmconvert_remote()
366 struct dlm_lock *lock, int flags, int type) in dlm_send_remote_convert_request() argument
380 convert.cookie = lock->ml.cookie; in dlm_send_remote_convert_request()
391 vec[1].iov_base = lock->lksb->lvb; in dlm_send_remote_convert_request()
446 struct dlm_lock *lock = NULL; in dlm_convert_lock_handler() local
496 lock = tmp_lock; in dlm_convert_lock_handler()
497 dlm_lock_get(lock); in dlm_convert_lock_handler()
502 if (!lock) { in dlm_convert_lock_handler()
513 lksb = lock->lksb; in dlm_convert_lock_handler()
531 status = __dlmconvert_master(dlm, res, lock, flags, in dlm_convert_lock_handler()
548 if (lock) in dlm_convert_lock_handler()
549 dlm_lock_put(lock); in dlm_convert_lock_handler()
553 dlm_queue_ast(dlm, lock); in dlm_convert_lock_handler()