Lines Matching refs:mw

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