From b20c8a502ddf846adf5258a646b6c9340778ab8e Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Thu, 1 Nov 2012 10:50:13 +1100 Subject: [PATCH] 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 --- Assemble.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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; } -- 2.47.2