*
*/
mdu_array_info_t array;
-
+
if (md_get_version(fd) < 9000) {
fprintf(stderr, Name ": need md driver version 0.90.0 or later\n");
return 1;
devname);
return 1;
}
-
+
if (readonly>0) {
if (ioctl(fd, STOP_ARRAY_RO, NULL)) {
fprintf(stderr, Name ": failed to set readonly for %s: %s\n",
return 1;
}
}
- return 0;
+ return 0;
}
#ifndef MDASSEMBLE
return 1;
}
}
-
+
if (md_get_version(fd) < 9000) {
fprintf(stderr, Name ": need md driver version 0.90.0 or later\n");
return 1;
dv->devname, strerror(errno));
return 1;
}
+ remove_partitions(tfd);
if (array.not_persistent==0)
st->ss->load_super(st, tfd, &osuper, NULL);
/* will use osuper later */
}
/* need to find a sample superblock to copy, and
- * a spare slot to use
+ * a spare slot to use
*/
for (j=0; j<st->max_devs; j++) {
char *dev;
close(dfd);
continue;
}
- remove_partitions(dfd);
close(dfd);
break;
}
* and was temporarily removed, and is now being re-added.
* If so, we can simply re-add it.
*/
- st->ss->uuid_from_super(duuid, dsuper);
+ st->ss->uuid_from_super(st, duuid, dsuper);
/* re-add doesn't work for version-1 superblocks
* before 2.6.18 :-(
get_linux_version() <= 2006018)
;
else if (osuper) {
- st->ss->uuid_from_super(ouuid, osuper);
+ st->ss->uuid_from_super(st, ouuid, osuper);
if (memcmp(duuid, ouuid, sizeof(ouuid))==0) {
/* looks close enough for now. Kernel
* will worry about whether a bitmap
* based reconstruction is possible.
*/
struct mdinfo mdi;
- st->ss->getinfo_super(&mdi, osuper);
+ st->ss->getinfo_super(st, &mdi, osuper);
disc.major = major(stb.st_rdev);
disc.minor = minor(stb.st_rdev);
disc.number = mdi.disk.number;
if (array.not_persistent==0) {
if (dv->writemostly)
disc.state |= 1 << MD_DISK_WRITEMOSTLY;
- st->ss->add_to_super(dsuper, &disc);
+ st->ss->add_to_super(st, dsuper, &disc);
if (st->ss->write_init_super(st, dsuper, &disc, dv->devname))
return 1;
} else if (dv->re_add) {
}
}
return 0;
-
+
}
int autodetect(void)