linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Create.c: Try few more times to stop array after failed creation
@ 2014-09-05 14:26 Pawel Baldysiak
  2014-09-08  6:33 ` NeilBrown
  0 siblings, 1 reply; 4+ messages in thread
From: Pawel Baldysiak @ 2014-09-05 14:26 UTC (permalink / raw)
  To: neilb; +Cc: linux-raid, pawel.baldysiak, artur.paszkiewicz

Sometimes after failure in creation (exp. due to duplicate devices
in create command) newly created empty md array will not be stopped
due to openers>1 (create_mddev will not manage to drop lock).
In this case ioctl() will return error - this needs to be checked
and if occurs - sending STOP_ARRAY should be repeat after delay
to make sure that mddev is stopped correctly.

Signed-off-by: Pawel Baldysiak <pawel.baldysiak@intel.com>
---
 Create.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/Create.c b/Create.c
index 330c5b4..7c8e53e 100644
--- a/Create.c
+++ b/Create.c
@@ -904,7 +904,12 @@ int Create(struct supertype *st, char *mddev,
 				if (st->ss->add_to_super(st, &inf->disk,
 							 fd, dv->devname,
 							 dv->data_offset)) {
-					ioctl(mdfd, STOP_ARRAY, NULL);
+					int count = 5;
+					while (count &&
+					       (ioctl(mdfd, STOP_ARRAY, NULL) < 0)) {
+						usleep(100000);
+						count--;
+					}
 					goto abort_locked;
 				}
 				st->ss->getinfo_super(st, inf, NULL);


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-09-09 10:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-05 14:26 [PATCH] Create.c: Try few more times to stop array after failed creation Pawel Baldysiak
2014-09-08  6:33 ` NeilBrown
2014-09-09 10:04   ` Baldysiak, Pawel
2014-09-09 10:16     ` NeilBrown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).