cfs_list_add_tail(&ktx->ktx_schedlist,
&kqswnal_data.kqn_donetxds);
- cfs_waitq_signal(&kqswnal_data.kqn_sched_waitq);
+ wake_up(&kqswnal_data.kqn_sched_waitq);
spin_unlock_irqrestore(&kqswnal_data.kqn_sched_lock, flags);
}
cfs_list_add_tail(&ktx->ktx_schedlist,
&kqswnal_data.kqn_delayedtxds);
- cfs_waitq_signal(&kqswnal_data.kqn_sched_waitq);
+ wake_up(&kqswnal_data.kqn_sched_waitq);
spin_unlock_irqrestore(&kqswnal_data.kqn_sched_lock,
flags);
spin_lock_irqsave(&kqswnal_data.kqn_sched_lock, flags);
cfs_list_add_tail(&krx->krx_list, &kqswnal_data.kqn_readyrxds);
- cfs_waitq_signal(&kqswnal_data.kqn_sched_waitq);
+ wake_up(&kqswnal_data.kqn_sched_waitq);
spin_unlock_irqrestore(&kqswnal_data.kqn_sched_lock, flags);
}
}
int
-kqswnal_thread_start (int (*fn)(void *arg), void *arg)
+kqswnal_thread_start(int (*fn)(void *arg), void *arg, char *name)
{
- long pid = cfs_create_thread (fn, arg, 0);
+ struct task_struct *task = cfs_thread_run(fn, arg, name);
- if (pid < 0)
- return ((int)pid);
+ if (IS_ERR(task))
+ return PTR_ERR(task);
- cfs_atomic_inc (&kqswnal_data.kqn_nthreads);
- return (0);
+ cfs_atomic_inc(&kqswnal_data.kqn_nthreads);
+ return 0;
}
void
int counter = 0;
int did_something;
- cfs_daemonize ("kqswnal_sched");
cfs_block_allsigs ();
spin_lock_irqsave(&kqswnal_data.kqn_sched_lock, flags);
* when there's nothing left to do */
break;
}
- cfs_wait_event_interruptible_exclusive (
- kqswnal_data.kqn_sched_waitq,
- kqswnal_data.kqn_shuttingdown == 2 ||
- !cfs_list_empty(&kqswnal_data. \
- kqn_readyrxds) ||
- !cfs_list_empty(&kqswnal_data. \
- kqn_donetxds) ||
- !cfs_list_empty(&kqswnal_data. \
- kqn_delayedtxds, rc));
- LASSERT (rc == 0);
- } else if (need_resched())
- cfs_schedule ();
+ rc = wait_event_interruptible_exclusive (
+ kqswnal_data.kqn_sched_waitq,
+ kqswnal_data.kqn_shuttingdown == 2 ||
+ !cfs_list_empty(&kqswnal_data. \
+ kqn_readyrxds) ||
+ !cfs_list_empty(&kqswnal_data. \
+ kqn_donetxds) ||
+ !cfs_list_empty(&kqswnal_data. \
+ kqn_delayedtxds));
+ LASSERT (rc == 0);
+ } else if (need_resched())
+ schedule ();
spin_lock_irqsave(&kqswnal_data.kqn_sched_lock,
- flags);
- }
- }
+ flags);
+ }
+ }
- kqswnal_thread_fini ();
- return (0);
+ kqswnal_thread_fini ();
+ return 0;
}