]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Tidy error messages for add_to_super failure.
authorNeilBrown <neilb@suse.de>
Thu, 27 Nov 2008 04:39:59 +0000 (15:39 +1100)
committerNeilBrown <neilb@suse.de>
Thu, 27 Nov 2008 04:39:59 +0000 (15:39 +1100)
Make sure every failure from add_to_super prints a suitable
error message, and then don't print any error in the caller.

Signed-off-by: NeilBrown <neilb@suse.de>
Create.c
Manage.c
super-intel.c

index 424be12c5ce958270c44ebb14aa8cc892b12d616..09df0b8843c7cd97d12744d5cb6ad73aeea468b1 100644 (file)
--- a/Create.c
+++ b/Create.c
@@ -706,11 +706,8 @@ int Create(struct supertype *st, char *mddev,
 
                                remove_partitions(fd);
                                if (st->ss->add_to_super(st, &inf->disk,
-                                                        fd, dv->devname)) {
-                                       fprintf(stderr, Name ": failed to add %s\n",
-                                               dv->devname);
+                                                        fd, dv->devname))
                                        goto abort;
-                               }
                                st->ss->getinfo_super(st, inf);
                                safe_mode_delay = inf->safe_mode_delay;
 
index 4998c9477aa924e9786d222e78657d7841fee423..f2b32662ede7d1dd69de30e654cebf158beab08e 100644 (file)
--- a/Manage.c
+++ b/Manage.c
@@ -626,8 +626,6 @@ int Manage_subdevs(char *devname, int fd,
                                dfd = open(dv->devname, O_RDWR | O_EXCL|O_DIRECT);
                                if (tst->ss->add_to_super(tst, &disc, dfd,
                                                          dv->devname)) {
-                                       fprintf(stderr, Name ": failed to add %s\n",
-                                               dv->devname);
                                        close(dfd);
                                        return 1;
                                }
index d39b88ca622e173598711510b50f668f0af9630f..5d8944cef037784b972ea0d7c7bf9abba85087ab 100644 (file)
@@ -1923,13 +1923,21 @@ static int add_to_super_imsm_volume(struct supertype *st, mdu_disk_info_t *dk,
        dev = get_imsm_dev(super, super->current_vol);
        map = get_imsm_map(dev, 0);
 
+       if (! (dk->state & (1<<MD_DISK_SYNC))) {
+               fprintf(stderr, Name ": %s: Cannot add spare devices to IMSM volume\n",
+                       devname);
+               return 1;
+       }
+
        for (dl = super->disks; dl ; dl = dl->next)
                if (dl->major == dk->major &&
                    dl->minor == dk->minor)
                        break;
 
-       if (!dl || ! (dk->state & (1<<MD_DISK_SYNC)))
+       if (!dl) {
+               fprintf(stderr, Name ": %s is not a member of the same container\n", devname);
                return 1;
+       }
 
        /* add a pristine spare to the metadata */
        if (dl->index < 0) {