Whamcloud - gitweb
LU-12930 various: use schedule_timeout_*interruptible
[fs/lustre-release.git] / libcfs / libcfs / workitem.c
index 40d5331..be11e32 100644 (file)
@@ -23,7 +23,7 @@
  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright (c) 2011, 2014, Intel Corporation.
+ * Copyright (c) 2011, 2013, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -126,8 +126,6 @@ cfs_wi_exit(struct cfs_wi_sched *sched, struct cfs_workitem *wi)
 
        wi->wi_scheduled = 1; /* LBUG future schedule attempts */
        spin_unlock(&sched->ws_lock);
-
-       return;
 }
 EXPORT_SYMBOL(cfs_wi_exit);
 
@@ -198,7 +196,6 @@ cfs_wi_schedule(struct cfs_wi_sched *sched, struct cfs_workitem *wi)
 
        LASSERT (!list_empty(&wi->wi_list));
        spin_unlock(&sched->ws_lock);
-       return;
 }
 EXPORT_SYMBOL(cfs_wi_schedule);
 
@@ -313,14 +310,13 @@ cfs_wi_sched_destroy(struct cfs_wi_sched *sched)
                int i = 2;
 
                while (sched->ws_nthreads > 0) {
-                       CDEBUG(IS_PO2(++i) ? D_WARNING : D_NET,
-                              "waiting for %d threads of WI sched[%s] to "
-                              "terminate\n", sched->ws_nthreads,
-                              sched->ws_name);
+                       CDEBUG(is_power_of_2(++i / 20) ? D_WARNING : D_NET,
+                              "waiting %us for %d %s worker threads to exit\n",
+                              i / 20, sched->ws_nthreads, sched->ws_name);
 
                        spin_unlock(&cfs_wi_data.wi_glock);
-                       set_current_state(TASK_UNINTERRUPTIBLE);
-                       schedule_timeout(cfs_time_seconds(1) / 20);
+                       schedule_timeout_uninterruptible(cfs_time_seconds(1)
+                                                        / 20);
                        spin_lock(&cfs_wi_data.wi_glock);
                }
        }
@@ -450,8 +446,8 @@ cfs_wi_shutdown (void)
 
                while (sched->ws_nthreads != 0) {
                        spin_unlock(&cfs_wi_data.wi_glock);
-                       set_current_state(TASK_UNINTERRUPTIBLE);
-                       schedule_timeout(cfs_time_seconds(1) / 20);
+                       schedule_timeout_uninterruptible(cfs_time_seconds(1)
+                                                        / 20);
                        spin_lock(&cfs_wi_data.wi_glock);
                }
                spin_unlock(&cfs_wi_data.wi_glock);