示例#1
0
文件: mdt_capa.c 项目: Lezval/lustre
void mdt_ck_thread_stop(struct mdt_device *mdt)
{
	struct ptlrpc_thread *thread = &mdt->mdt_ck_thread;

	if (!thread_is_running(thread))
		return;

	thread_set_flags(thread, SVC_STOPPING);
	wake_up(&thread->t_ctl_waitq);
	l_wait_condition(thread->t_ctl_waitq, thread_is_stopped(thread));
}
示例#2
0
文件: mdt_capa.c 项目: Lezval/lustre
int mdt_ck_thread_start(struct mdt_device *mdt)
{
	struct ptlrpc_thread *thread = &mdt->mdt_ck_thread;
	struct task_struct *task;

	init_waitqueue_head(&thread->t_ctl_waitq);
	task = kthread_run(mdt_ck_thread_main, mdt, "mdt_ck");
	if (IS_ERR(task)) {
		CERROR("cannot start mdt_ck thread, rc = %ld\n", PTR_ERR(task));
		return PTR_ERR(task);
	}

	l_wait_condition(thread->t_ctl_waitq, thread_is_running(thread));
	return 0;
}
示例#3
0
文件: mdt_capa.c 项目: hpc/lustre
int mdt_ck_thread_start(struct mdt_device *mdt)
{
        struct ptlrpc_thread *thread = &mdt->mdt_ck_thread;
        int rc;

        cfs_waitq_init(&thread->t_ctl_waitq);
        rc = cfs_create_thread(mdt_ck_thread_main, mdt, CFS_DAEMON_FLAGS);
        if (rc < 0) {
                CERROR("cannot start mdt_ck thread, rc = %d\n", rc);
                return rc;
        }

        l_wait_condition(thread->t_ctl_waitq, thread_is_running(thread));
        return 0;
}