diff options
author | NeilBrown <neilb@suse.de> | 2013-07-10 11:10:54 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2013-07-10 11:10:54 +1000 |
commit | a7a0d8a116c11b2208e70fd4dcc8ab920e472b8b (patch) | |
tree | d94673f83ff101594347bbc2450698d0dc688493 /Grow.c | |
parent | b4924f46c04262e7e80aac27acc5848066393c52 (diff) |
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 <neilb@suse.de>
Diffstat (limited to 'Grow.c')
-rw-r--r-- | Grow.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -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); |