thread->name = name; 
mdk_thread_t *md_register_thread(void (*run) (mddev_t *), mddev_t *mddev,				 const char *name){	mdk_thread_t *thread;	struct completion event;	thread = kmalloc(sizeof(mdk_thread_t), GFP_KERNEL);	if (!thread)		return NULL;	memset(thread, 0, sizeof(mdk_thread_t));	init_waitqueue_head(&thread->wqueue);	init_completion(&event);	thread->event = &event;	thread->run = run;	thread->mddev = mddev;	thread->name = name;	thread->timeout = MAX_SCHEDULE_TIMEOUT;	thread->tsk = kthread_run(md_thread, thread, name, mdname(thread->mddev));	if (IS_ERR(thread->tsk)) {		kfree(thread);		return NULL;	}	wait_for_completion(&event);	return thread;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/787453c2397edcc3261efebb661739acd8c38547/md.c/clean/drivers/md/md.c