Lines Matching refs:mw

434 				    struct ocfs2_mask_waiter *mw, int ret)  in ocfs2_update_lock_stats()  argument
447 kt = ktime_sub(ktime_get(), mw->mw_lock_start); in ocfs2_update_lock_stats()
474 struct ocfs2_mask_waiter *mw; in ocfs2_track_lock_wait() local
481 mw = list_first_entry(&lockres->l_mask_waiters, in ocfs2_track_lock_wait()
484 ktime_to_us(ktime_mono_to_real(mw->mw_lock_start)); in ocfs2_track_lock_wait()
487 static inline void ocfs2_init_start_time(struct ocfs2_mask_waiter *mw) in ocfs2_init_start_time() argument
489 mw->mw_lock_start = ktime_get(); in ocfs2_init_start_time()
496 int level, struct ocfs2_mask_waiter *mw, int ret) in ocfs2_update_lock_stats() argument
505 static inline void ocfs2_init_start_time(struct ocfs2_mask_waiter *mw) in ocfs2_init_start_time() argument
891 struct ocfs2_mask_waiter *mw, *tmp; in lockres_set_flags() local
897 list_for_each_entry_safe(mw, tmp, &lockres->l_mask_waiters, mw_item) { in lockres_set_flags()
898 if ((lockres->l_flags & mw->mw_mask) != mw->mw_goal) in lockres_set_flags()
901 list_del_init(&mw->mw_item); in lockres_set_flags()
902 mw->mw_status = 0; in lockres_set_flags()
903 complete(&mw->mw_complete); in lockres_set_flags()
1389 static void ocfs2_init_mask_waiter(struct ocfs2_mask_waiter *mw) in ocfs2_init_mask_waiter() argument
1391 INIT_LIST_HEAD(&mw->mw_item); in ocfs2_init_mask_waiter()
1392 init_completion(&mw->mw_complete); in ocfs2_init_mask_waiter()
1393 ocfs2_init_start_time(mw); in ocfs2_init_mask_waiter()
1396 static int ocfs2_wait_for_mask(struct ocfs2_mask_waiter *mw) in ocfs2_wait_for_mask() argument
1398 wait_for_completion(&mw->mw_complete); in ocfs2_wait_for_mask()
1400 reinit_completion(&mw->mw_complete); in ocfs2_wait_for_mask()
1401 return mw->mw_status; in ocfs2_wait_for_mask()
1405 struct ocfs2_mask_waiter *mw, in lockres_add_mask_waiter() argument
1409 BUG_ON(!list_empty(&mw->mw_item)); in lockres_add_mask_waiter()
1413 list_add_tail(&mw->mw_item, &lockres->l_mask_waiters); in lockres_add_mask_waiter()
1414 mw->mw_mask = mask; in lockres_add_mask_waiter()
1415 mw->mw_goal = goal; in lockres_add_mask_waiter()
1422 struct ocfs2_mask_waiter *mw) in __lockres_remove_mask_waiter() argument
1427 if (!list_empty(&mw->mw_item)) { in __lockres_remove_mask_waiter()
1428 if ((lockres->l_flags & mw->mw_mask) != mw->mw_goal) in __lockres_remove_mask_waiter()
1431 list_del_init(&mw->mw_item); in __lockres_remove_mask_waiter()
1432 init_completion(&mw->mw_complete); in __lockres_remove_mask_waiter()
1440 struct ocfs2_mask_waiter *mw) in lockres_remove_mask_waiter() argument
1446 ret = __lockres_remove_mask_waiter(lockres, mw); in lockres_remove_mask_waiter()
1453 static int ocfs2_wait_for_mask_interruptible(struct ocfs2_mask_waiter *mw, in ocfs2_wait_for_mask_interruptible() argument
1458 ret = wait_for_completion_interruptible(&mw->mw_complete); in ocfs2_wait_for_mask_interruptible()
1460 lockres_remove_mask_waiter(lockres, mw); in ocfs2_wait_for_mask_interruptible()
1462 ret = mw->mw_status; in ocfs2_wait_for_mask_interruptible()
1464 reinit_completion(&mw->mw_complete); in ocfs2_wait_for_mask_interruptible()
1476 struct ocfs2_mask_waiter mw; in __ocfs2_cluster_lock() local
1490 ocfs2_init_mask_waiter(&mw); in __ocfs2_cluster_lock()
1516 lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0); in __ocfs2_cluster_lock()
1544 lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BLOCKED, 0); in __ocfs2_cluster_lock()
1634 mw.mw_mask & (OCFS2_LOCK_BUSY|OCFS2_LOCK_BLOCKED)) { in __ocfs2_cluster_lock()
1637 if (__lockres_remove_mask_waiter(lockres, &mw)) { in __ocfs2_cluster_lock()
1649 ret = ocfs2_wait_for_mask(&mw); in __ocfs2_cluster_lock()
1654 ocfs2_update_lock_stats(lockres, level, &mw, ret); in __ocfs2_cluster_lock()
1911 struct ocfs2_mask_waiter mw; in ocfs2_flock_handle_signal() local
1913 ocfs2_init_mask_waiter(&mw); in ocfs2_flock_handle_signal()
1928 lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0); in ocfs2_flock_handle_signal()
1931 ocfs2_wait_for_mask(&mw); in ocfs2_flock_handle_signal()
1981 struct ocfs2_mask_waiter mw; in ocfs2_file_lock() local
1983 ocfs2_init_mask_waiter(&mw); in ocfs2_file_lock()
1996 lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0); in ocfs2_file_lock()
2009 ret = ocfs2_wait_for_mask(&mw); in ocfs2_file_lock()
2022 lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0); in ocfs2_file_lock()
2034 lockres_remove_mask_waiter(lockres, &mw); in ocfs2_file_lock()
2038 ret = ocfs2_wait_for_mask_interruptible(&mw, lockres); in ocfs2_file_lock()
2077 struct ocfs2_mask_waiter mw; in ocfs2_file_unlock() local
2079 ocfs2_init_mask_waiter(&mw); in ocfs2_file_unlock()
2099 lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_BUSY, 0); in ocfs2_file_unlock()
2108 ret = ocfs2_wait_for_mask(&mw); in ocfs2_file_unlock()
3509 struct ocfs2_mask_waiter mw; in ocfs2_mark_lockres_freeing() local
3512 ocfs2_init_mask_waiter(&mw); in ocfs2_mark_lockres_freeing()
3551 lockres_add_mask_waiter(lockres, &mw, OCFS2_LOCK_QUEUED, 0); in ocfs2_mark_lockres_freeing()
3556 status = ocfs2_wait_for_mask(&mw); in ocfs2_mark_lockres_freeing()