-int
-cfs_kernel_thread(cfs_thread_t func, void *arg, int flag)
-{
- int ret = 0;
- thread_t th = NULL;
-
- thread_arg_hold(&cfs_thread_arg, func, arg);
- th = kernel_thread(kernel_task, cfs_thread_agent);
- thread_arg_release(&cfs_thread_arg);
- if (th == THREAD_NULL)
+struct task_struct
+kthread_run(cfs_thread_t func, void *arg, const char namefmt[], ...)
+{
+ int ret = 0;
+ thread_t th = NULL;
+
+ thread_arg_hold(&cfs_thread_arg, func, arg);
+ th = kernel_thread(kernel_task, cfs_thread_agent);
+ thread_arg_release(&cfs_thread_arg);
+ if (th != THREAD_NULL) {
+ /*
+ * FIXME: change child thread name...
+ * current_comm() is already broken. So it is left as is...
+ va_list args;
+ va_start(args, namefmt);
+ snprintf(current_comm(), CFS_CURPROC_COMM_MAX,
+ namefmt, args);
+ va_end(args);
+ */
+ } else {