]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Improve error message when trying to create an array that already exists.
authorDoug Ledford <dledford@redhat.com>
Sun, 8 Jul 2007 23:59:50 +0000 (09:59 +1000)
committerNeil Brown <neilb@suse.de>
Sun, 8 Jul 2007 23:59:50 +0000 (09:59 +1000)
From: Doug Ledford <dledford@redhat.com>

Simple bugfix.  If an array already exists and we are asked to create
this array, error out with an error message that makes sense to people
instead of an error that the SET_ARRAY_INFO ioctl had an invalid
argument.  Plus a typo correction.

Create.c

index 2a4335a891cf882c7b42ff3367245518aa6887e5..08972ae1b7703b3e2069e8584324b6ad025c123d 100644 (file)
--- a/Create.c
+++ b/Create.c
@@ -81,6 +81,15 @@ int Create(struct supertype *st, char *mddev, int mdfd,
        if (vers < 9000) {
                fprintf(stderr, Name ": Create requires md driver version 0.90.0 or later\n");
                return 1;
+       } else {
+               mdu_array_info_t inf;
+               memset(&inf, 0, sizeof(inf));
+               ioctl(mdfd, GET_ARRAY_INFO, &inf);
+               if (inf.working_disks != 0) {
+                       fprintf(stderr, Name ": another array by this name"
+                               " is already running.\n");
+                       return 1;
+               }
        }
        if (level == UnSet) {
                fprintf(stderr,
@@ -225,7 +234,8 @@ int Create(struct supertype *st, char *mddev, int mdfd,
                        }
                        if (st->ss->major != 0 ||
                            st->minor_version != 90)
-                               fprintf(stderr, Name ": Defaulting to verion %d.%d metadata\n",
+                               fprintf(stderr, Name ": Defaulting to version"
+                                       " %d.%d metadata\n",
                                        st->ss->major,
                                        st->minor_version);
                }