summaryrefslogtreecommitdiffstats
path: root/mdadm.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2005-08-09 05:23:20 +0000
committerNeil Brown <neilb@suse.de>2005-08-09 05:23:20 +0000
commit947fd4ddb554fd2c3d81c190dfe63407f8771eb8 (patch)
tree10b16db86578ca184faabae4232a886d2cff1ddc /mdadm.c
parentdfd4d8ee426fb71a369f494f95fe95b114a33c7c (diff)
downloadmdadm-947fd4ddb554fd2c3d81c190dfe63407f8771eb8.tar.gz
mdadm-947fd4ddb554fd2c3d81c190dfe63407f8771eb8.tar.xz
mdadm-947fd4ddb554fd2c3d81c190dfe63407f8771eb8.zip
Support nameing of version-1 arrays.
--name is recognised in --create and --assemble name= is recognised in config file. Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Diffstat (limited to 'mdadm.c')
-rw-r--r--mdadm.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/mdadm.c b/mdadm.c
index 4dd6524..de1f95a 100644
--- a/mdadm.c
+++ b/mdadm.c
@@ -107,6 +107,7 @@ int main(int argc, char *argv[])
ident.autof = 0;
ident.st = NULL;
ident.bitmap_fd = -1;
+ ident.name[0] = 0;
while ((option_index = -1) ,
(opt=getopt_long(argc, argv,
@@ -526,6 +527,21 @@ int main(int argc, char *argv[])
}
continue;
+ case O(CREATE,'N'):
+ case O(ASSEMBLE,'N'):
+ if (ident.name[0]) {
+ fprintf(stderr, Name ": name cannot be set twice. "
+ "Second value %s.\n", optarg);
+ exit(2);
+ }
+ if (strlen(optarg) > 32) {
+ fprintf(stderr, Name ": name '%s' is too long, 32 chars max.\n",
+ optarg);
+ exit(2);
+ }
+ strcpy(ident.name, optarg);
+ continue;
+
case O(ASSEMBLE,'m'): /* super-minor for array */
if (ident.super_minor != UnSet) {
fprintf(stderr, Name ": super-minor cannot be set twice. "
@@ -852,7 +868,7 @@ int main(int argc, char *argv[])
break;
case ASSEMBLE:
if (devs_found == 1 && ident.uuid_set == 0 &&
- ident.super_minor == UnSet && !scan ) {
+ ident.super_minor == UnSet && ident.name[0] == 0 && !scan ) {
/* Only a device has been given, so get details from config file */
mddev_ident_t array_ident = conf_get_ident(configfile, devlist->devname);
if (array_ident == NULL) {
@@ -972,7 +988,7 @@ int main(int argc, char *argv[])
}
rv = Create(ss, devlist->devname, mdfd, chunk, level, layout, size<0 ? 0 : size,
- raiddisks, sparedisks,
+ raiddisks, sparedisks, ident.name,
devs_found-1, devlist->next, runstop, verbose, force,
bitmap_file, bitmap_chunk, write_behind, delay);
break;