From: NeilBrown Date: Thu, 10 Mar 2011 04:59:24 +0000 (+1100) Subject: Grow: allow monitor thread to exit when there is nothing more to do. X-Git-Tag: mdadm-3.2.1~47 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2d4de5f9801449b6643b3095831481e28ecd2b86;p=thirdparty%2Fmdadm.git Grow: allow monitor thread to exit when there is nothing more to do. When an array using native metadata is increasing in size, we don't need to keep monitoring it after the initial 'critical section'. So detect that case. If a final level-change is still needed mdadm will wait for that, otherwise it will simply exit. Signed-off-by: NeilBrown --- diff --git a/Grow.c b/Grow.c index c11b1cee..9b4d5fbd 100644 --- a/Grow.c +++ b/Grow.c @@ -3016,6 +3016,11 @@ int child_monitor(int afd, struct mdinfo *sra, struct reshape *reshape, done = 1; break; } + if (rv == 0 && increasing && !st->ss->external) { + /* No longer need to monitor this reshape */ + done = 1; + break; + } while (rv) { unsigned long long offset;