Lines Matching refs:mw

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