raid5-cache: handle journal hotadd in quiesce
authorShaohua Li <shli@fb.com>
Wed, 6 Jan 2016 22:37:15 +0000 (14:37 -0800)
committerNeilBrown <neilb@suse.com>
Thu, 14 Jan 2016 00:49:43 +0000 (11:49 +1100)
Handle journal hotadd in quiesce to avoid creating duplicated threads.

Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: NeilBrown <neilb@suse.com>
drivers/md/raid5-cache.c

index 7ac035a..9531f5f 100644 (file)
@@ -827,6 +827,13 @@ void r5l_quiesce(struct r5l_log *log, int state)
                return;
        if (state == 0) {
                log->in_teardown = 0;
+               /*
+                * This is a special case for hotadd. In suspend, the array has
+                * no journal. In resume, journal is initialized as well as the
+                * reclaim thread.
+                */
+               if (log->reclaim_thread)
+                       return;
                log->reclaim_thread = md_register_thread(r5l_reclaim_thread,
                                        log->rdev->mddev, "reclaim");
        } else if (state == 1) {