• Home
  • Raw
  • Download

Lines Matching refs:lock

345 	struct dlm_lock *lock, *target;  in dlm_shuffle_lists()  local
372 list_for_each_entry(lock, &res->granted, list) { in dlm_shuffle_lists()
373 if (lock==target) in dlm_shuffle_lists()
375 if (!dlm_lock_compatible(lock->ml.type, in dlm_shuffle_lists()
379 if (lock->ml.highest_blocked == LKM_IVMODE) { in dlm_shuffle_lists()
381 __dlm_queue_bast(dlm, lock); in dlm_shuffle_lists()
384 if (lock->ml.highest_blocked < target->ml.convert_type) in dlm_shuffle_lists()
385 lock->ml.highest_blocked = in dlm_shuffle_lists()
390 list_for_each_entry(lock, &res->converting, list) { in dlm_shuffle_lists()
391 if (lock==target) in dlm_shuffle_lists()
393 if (!dlm_lock_compatible(lock->ml.type, in dlm_shuffle_lists()
396 if (lock->ml.highest_blocked == LKM_IVMODE) { in dlm_shuffle_lists()
398 __dlm_queue_bast(dlm, lock); in dlm_shuffle_lists()
400 if (lock->ml.highest_blocked < target->ml.convert_type) in dlm_shuffle_lists()
401 lock->ml.highest_blocked = in dlm_shuffle_lists()
439 list_for_each_entry(lock, &res->granted, list) { in dlm_shuffle_lists()
440 if (lock==target) in dlm_shuffle_lists()
442 if (!dlm_lock_compatible(lock->ml.type, target->ml.type)) { in dlm_shuffle_lists()
444 if (lock->ml.highest_blocked == LKM_IVMODE) { in dlm_shuffle_lists()
446 __dlm_queue_bast(dlm, lock); in dlm_shuffle_lists()
448 if (lock->ml.highest_blocked < target->ml.type) in dlm_shuffle_lists()
449 lock->ml.highest_blocked = target->ml.type; in dlm_shuffle_lists()
453 list_for_each_entry(lock, &res->converting, list) { in dlm_shuffle_lists()
454 if (lock==target) in dlm_shuffle_lists()
456 if (!dlm_lock_compatible(lock->ml.type, target->ml.type)) { in dlm_shuffle_lists()
458 if (lock->ml.highest_blocked == LKM_IVMODE) { in dlm_shuffle_lists()
460 __dlm_queue_bast(dlm, lock); in dlm_shuffle_lists()
462 if (lock->ml.highest_blocked < target->ml.type) in dlm_shuffle_lists()
463 lock->ml.highest_blocked = target->ml.type; in dlm_shuffle_lists()
574 struct dlm_lock *lock; in dlm_flush_asts() local
580 lock = list_entry(dlm->pending_asts.next, in dlm_flush_asts()
583 dlm_lock_get(lock); in dlm_flush_asts()
584 res = lock->lockres; in dlm_flush_asts()
588 dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)), in dlm_flush_asts()
589 dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)), in dlm_flush_asts()
590 lock->ml.type, lock->ml.node); in dlm_flush_asts()
592 BUG_ON(!lock->ast_pending); in dlm_flush_asts()
595 list_del_init(&lock->ast_list); in dlm_flush_asts()
596 dlm_lock_put(lock); in dlm_flush_asts()
599 if (lock->ml.node != dlm->node_num) { in dlm_flush_asts()
600 ret = dlm_do_remote_ast(dlm, res, lock); in dlm_flush_asts()
604 dlm_do_local_ast(dlm, res, lock); in dlm_flush_asts()
610 if (!list_empty(&lock->ast_list)) { in dlm_flush_asts()
615 lock->ast_pending = 0; in dlm_flush_asts()
619 dlm_lock_put(lock); in dlm_flush_asts()
624 lock = list_entry(dlm->pending_basts.next, in dlm_flush_asts()
627 dlm_lock_get(lock); in dlm_flush_asts()
628 res = lock->lockres; in dlm_flush_asts()
630 BUG_ON(!lock->bast_pending); in dlm_flush_asts()
633 spin_lock(&lock->spinlock); in dlm_flush_asts()
634 BUG_ON(lock->ml.highest_blocked <= LKM_IVMODE); in dlm_flush_asts()
635 hi = lock->ml.highest_blocked; in dlm_flush_asts()
636 lock->ml.highest_blocked = LKM_IVMODE; in dlm_flush_asts()
637 spin_unlock(&lock->spinlock); in dlm_flush_asts()
640 list_del_init(&lock->bast_list); in dlm_flush_asts()
641 dlm_lock_put(lock); in dlm_flush_asts()
647 dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)), in dlm_flush_asts()
648 dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)), in dlm_flush_asts()
649 hi, lock->ml.node); in dlm_flush_asts()
651 if (lock->ml.node != dlm->node_num) { in dlm_flush_asts()
652 ret = dlm_send_proxy_bast(dlm, res, lock, hi); in dlm_flush_asts()
656 dlm_do_local_bast(dlm, res, lock, hi); in dlm_flush_asts()
662 if (!list_empty(&lock->bast_list)) { in dlm_flush_asts()
667 lock->bast_pending = 0; in dlm_flush_asts()
671 dlm_lock_put(lock); in dlm_flush_asts()