From: NeilBrown Date: Wed, 31 Oct 2012 23:50:13 +0000 (+1100) Subject: Assemble: fix call to wait_for X-Git-Tag: mdadm-3.3-rc1~149 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b20c8a502ddf846adf5258a646b6c9340778ab8e;p=thirdparty%2Fmdadm.git Assemble: fix call to wait_for Recent patch closed 'mdfd' before calling wait_for, which means it doesn't work. Put the close back in the right place. Signed-off-by: NeilBrown --- diff --git a/Assemble.c b/Assemble.c index 0e51fa47..c2fa0961 100644 --- a/Assemble.c +++ b/Assemble.c @@ -1654,11 +1654,11 @@ try_again: clean, avail, start_partial_ok); if (rv == 1 && !pre_exist) ioctl(mdfd, STOP_ARRAY, NULL); - close(mdfd); free(devices); map_unlock(&map); if (rv == 0) { wait_for(chosen_name, mdfd); + close(mdfd); if (auto_assem) { int usecs = 1; /* There is a nasty race with 'mdadm --monitor'. @@ -1685,7 +1685,9 @@ try_again: usecs <<= 1; } } - } + } else + close(mdfd); + /* '2' means 'OK, but not started yet' */ return rv == 2 ? 0 : rv; }