Whamcloud - gitweb
LU-10467 ptlrpc: convert waiters on set->set_waitq
[fs/lustre-release.git] / lustre / ptlrpc / ptlrpcd.c
index 9810009..914f326 100644 (file)
@@ -486,16 +486,20 @@ static int ptlrpcd(void *arg)
         * new_req_list and ptlrpcd_check() moves them into the set.
         */
        do {
-               struct l_wait_info lwi;
                time64_t timeout;
 
                timeout = ptlrpc_set_next_timeout(set);
-               lwi = LWI_TIMEOUT(cfs_time_seconds(timeout),
-                               ptlrpc_expired_set, set);
 
                lu_context_enter(&env.le_ctx);
                lu_context_enter(env.le_ses);
-               l_wait_event(set->set_waitq, ptlrpcd_check(&env, pc), &lwi);
+               if (timeout == 0)
+                       wait_event_idle(set->set_waitq,
+                                       ptlrpcd_check(&env, pc));
+               else if (wait_event_idle_timeout(set->set_waitq,
+                                                ptlrpcd_check(&env, pc),
+                                                cfs_time_seconds(timeout))
+                        == 0)
+                       ptlrpc_expired_set(set);
                lu_context_exit(&env.le_ctx);
                lu_context_exit(env.le_ses);