Lines Matching full:mw

435 				    struct ocfs2_mask_waiter *mw, int ret)  in ocfs2_update_lock_stats()  argument
448 kt = ktime_sub(ktime_get(), mw->mw_lock_start); in ocfs2_update_lock_stats()
475 struct ocfs2_mask_waiter *mw; in ocfs2_track_lock_wait() local
482 mw = list_first_entry(&lockres->l_mask_waiters, in ocfs2_track_lock_wait()
485 ktime_to_us(ktime_mono_to_real(mw->mw_lock_start)); in ocfs2_track_lock_wait()
488 static inline void ocfs2_init_start_time(struct ocfs2_mask_waiter *mw) in ocfs2_init_start_time() argument
490 mw->mw_lock_start = ktime_get(); in ocfs2_init_start_time()
497 int level, struct ocfs2_mask_waiter *mw, int ret) in ocfs2_update_lock_stats() argument
506 static inline void ocfs2_init_start_time(struct ocfs2_mask_waiter *mw) in ocfs2_init_start_time() argument
892 struct ocfs2_mask_waiter *mw, *tmp; in lockres_set_flags() local
898 list_for_each_entry_safe(mw, tmp, &lockres->l_mask_waiters, mw_item) { in lockres_set_flags()
899 if ((lockres->l_flags & mw->mw_mask) != mw->mw_goal) in lockres_set_flags()
902 list_del_init(&mw->mw_item); in lockres_set_flags()
903 mw->mw_status = 0; in lockres_set_flags()
904 complete(&mw->mw_complete); in lockres_set_flags()
1390 static void ocfs2_init_mask_waiter(struct ocfs2_mask_waiter *mw) in ocfs2_init_mask_waiter() argument
1392 INIT_LIST_HEAD(&mw->mw_item); in ocfs2_init_mask_waiter()
1393 init_completion(&mw->mw_complete); in ocfs2_init_mask_waiter()
1394 ocfs2_init_start_time(mw); in ocfs2_init_mask_waiter()
1397 static int ocfs2_wait_for_mask(struct ocfs2_mask_waiter *mw) in ocfs2_wait_for_mask() argument
1399 wait_for_completion(&mw->mw_complete); in ocfs2_wait_for_mask()
1401 reinit_completion(&mw->mw_complete); in ocfs2_wait_for_mask()
1402 return mw->mw_status; in ocfs2_wait_for_mask()
1406 struct ocfs2_mask_waiter *mw, in lockres_add_mask_waiter() argument
1410 BUG_ON(!list_empty(&mw->mw_item)); in lockres_add_mask_waiter()
1414 list_add_tail(&mw->mw_item, &lockres->l_mask_waiters); in lockres_add_mask_waiter()
1415 mw->mw_mask = mask; in lockres_add_mask_waiter()
1416 mw->mw_goal = goal; in lockres_add_mask_waiter()
1420 /* returns 0 if the mw that was removed was already satisfied, -EBUSY
1423 struct ocfs2_mask_waiter *mw) in __lockres_remove_mask_waiter() argument
1428 if (!list_empty(&mw->mw_item)) { in __lockres_remove_mask_waiter()
1429 if ((lockres->l_flags & mw->mw_mask) != mw->mw_goal) in __lockres_remove_mask_waiter()
1432 list_del_init(&mw->mw_item); in __lockres_remove_mask_waiter()
1433 init_completion(&mw->mw_complete); in __lockres_remove_mask_waiter()
1441 struct ocfs2_mask_waiter *mw) in lockres_remove_mask_waiter() argument
1447 ret = __lockres_remove_mask_waiter(lockres, mw); in lockres_remove_mask_waiter()
1454 static int ocfs2_wait_for_mask_interruptible(struct ocfs2_mask_waiter *mw, in ocfs2_wait_for_mask_interruptible() argument
1459 ret = wait_for_completion_interruptible(&mw->mw_complete); in ocfs2_wait_for_mask_interruptible()
1461 lockres_remove_mask_waiter(lockres, mw); in ocfs2_wait_for_mask_interruptible()
1463 ret = mw->mw_status; in ocfs2_wait_for_mask_interruptible()
1465 reinit_completion(&mw->mw_complete); in ocfs2_wait_for_mask_interruptible()
1477 struct ocfs2_mask_waiter mw; in __ocfs2_cluster_lock() local
1491 ocfs2_init_mask_waiter(&mw); in __ocfs2_cluster_lock()
1517 lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0); in __ocfs2_cluster_lock()
1545 lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BLOCKED, 0); in __ocfs2_cluster_lock()
1635 mw.mw_mask & (OCFS2_LOCK_BUSY|OCFS2_LOCK_BLOCKED)) { in __ocfs2_cluster_lock()
1638 if (__lockres_remove_mask_waiter(lockres, &mw)) { in __ocfs2_cluster_lock()
1650 ret = ocfs2_wait_for_mask(&mw); in __ocfs2_cluster_lock()
1655 ocfs2_update_lock_stats(lockres, level, &mw, ret); in __ocfs2_cluster_lock()
1912 struct ocfs2_mask_waiter mw; in ocfs2_flock_handle_signal() local
1914 ocfs2_init_mask_waiter(&mw); in ocfs2_flock_handle_signal()
1929 lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0); in ocfs2_flock_handle_signal()
1932 ocfs2_wait_for_mask(&mw); in ocfs2_flock_handle_signal()
1982 struct ocfs2_mask_waiter mw; in ocfs2_file_lock() local
1984 ocfs2_init_mask_waiter(&mw); in ocfs2_file_lock()
1997 lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0); in ocfs2_file_lock()
2010 ret = ocfs2_wait_for_mask(&mw); in ocfs2_file_lock()
2023 lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0); in ocfs2_file_lock()
2035 lockres_remove_mask_waiter(lockres, &mw); in ocfs2_file_lock()
2039 ret = ocfs2_wait_for_mask_interruptible(&mw, lockres); in ocfs2_file_lock()
2078 struct ocfs2_mask_waiter mw; in ocfs2_file_unlock() local
2080 ocfs2_init_mask_waiter(&mw); in ocfs2_file_unlock()
2100 lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0); in ocfs2_file_unlock()
2109 ret = ocfs2_wait_for_mask(&mw); in ocfs2_file_unlock()
3508 struct ocfs2_mask_waiter mw; in ocfs2_mark_lockres_freeing() local
3511 ocfs2_init_mask_waiter(&mw); in ocfs2_mark_lockres_freeing()
3550 lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_QUEUED, 0); in ocfs2_mark_lockres_freeing()
3555 status = ocfs2_wait_for_mask(&mw); in ocfs2_mark_lockres_freeing()