summaryrefslogtreecommitdiffstats
path: root/Manage.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2008-11-26 15:39:51 -0700
committerNeilBrown <neilb@suse.de>2008-11-27 15:30:39 +1100
commitf20c3968363a16f3c8dce5d69863bbb54a4d236e (patch)
treec96904d976647f1051b9f3dbc2cf72c27b428624 /Manage.c
parentfabbfd48b6c2398a344d2d4f7cbf0ab98181a6d4 (diff)
downloadmdadm-f20c3968363a16f3c8dce5d69863bbb54a4d236e.tar.gz
mdadm-f20c3968363a16f3c8dce5d69863bbb54a4d236e.tar.xz
mdadm-f20c3968363a16f3c8dce5d69863bbb54a4d236e.zip
allow add_to_super to return errors
Prepare add_to_super to validate disks against the platform capabilities Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'Manage.c')
-rw-r--r--Manage.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/Manage.c b/Manage.c
index ccc13c4..4998c94 100644
--- a/Manage.c
+++ b/Manage.c
@@ -624,8 +624,13 @@ int Manage_subdevs(char *devname, int fd,
if (dv->writemostly == 1)
disc.state |= 1 << MD_DISK_WRITEMOSTLY;
dfd = open(dv->devname, O_RDWR | O_EXCL|O_DIRECT);
- tst->ss->add_to_super(tst, &disc, dfd,
- dv->devname);
+ 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;
+ }
/* write_init_super will close 'dfd' */
if (tst->ss->external)
/* mdmon will write the metadata */