From a7a0d8a116c11b2208e70fd4dcc8ab920e472b8b Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Wed, 10 Jul 2013 11:10:54 +1000 Subject: Grow: use mdstat_wait to wait for delayed reshape. Having a fix time for a wait is clumsy and can make us wait much too long. So use mdstat_wait and keep the mdstat_fd open. This requires an 'mdstat_close' so it doesn't stay open forever. Signed-off-by: NeilBrown --- Grow.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'Grow.c') diff --git a/Grow.c b/Grow.c index 7baa5f8a..84f0a295 100644 --- a/Grow.c +++ b/Grow.c @@ -3228,7 +3228,7 @@ started: do { struct mdstat_ent *mds, *m; delayed = 0; - mds = mdstat_read(0, 0); + mds = mdstat_read(1, 0); for (m = mds; m; m = m->next) if (strcmp(m->devnm, sra->sys_name) == 0) { if (m->resync && @@ -3248,9 +3248,9 @@ started: delayed = 0; } if (delayed) - sleep(30 - (delayed-1) * 25); + mdstat_wait(30 - (delayed-1) * 25); } while (delayed); - + mdstat_close(); close(fd); if (check_env("MDADM_GROW_VERIFY")) fd = open(devname, O_RDONLY | O_DIRECT); -- cgit v1.2.3