Bläddra i källkod

md: md_unregister_thread should cope with being passed NULL

Mostly md_unregister_thread is only called when we know that the
thread is NULL, but sometimes we need to check first.  It is safer
to put the check inside md_unregister_thread itself.

Signed-off-by: NeilBrown <neilb@suse.de>
NeilBrown 16 år sedan
förälder
incheckning
e0cf8f045b
2 ändrade filer med 3 tillägg och 2 borttagningar
  1. 2 0
      drivers/md/md.c
  2. 1 2
      drivers/md/raid5.c

+ 2 - 0
drivers/md/md.c

@@ -5382,6 +5382,8 @@ mdk_thread_t *md_register_thread(void (*run) (mddev_t *), mddev_t *mddev,
 
 void md_unregister_thread(mdk_thread_t *thread)
 {
+	if (!thread)
+		return;
 	dprintk("interrupting MD-thread pid %d\n", task_pid_nr(thread->tsk));
 
 	kthread_stop(thread->tsk);

+ 1 - 2
drivers/md/raid5.c

@@ -4463,8 +4463,7 @@ static int run(mddev_t *mddev)
 
 	return 0;
 abort:
-	if (mddev->thread)
-		md_unregister_thread(mddev->thread);
+	md_unregister_thread(mddev->thread);
 	mddev->thread = NULL;
 	if (conf) {
 		shrink_stripes(conf);