summaryrefslogtreecommitdiffstats
path: root/mdadm.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2006-08-11 18:00:05 +1000
committerNeil Brown <neilb@suse.de>2006-08-11 18:00:05 +1000
commit38098016cae12b5e840b3a5a24b0c5120a83971c (patch)
tree7d284c2cfbd34c92c9d08843d42e936e857aa5f4 /mdadm.c
parent0a6e1c6743122c3fb060ced194ce5f08690b31e6 (diff)
downloadmdadm-38098016cae12b5e840b3a5a24b0c5120a83971c.tar.gz
mdadm-38098016cae12b5e840b3a5a24b0c5120a83971c.tar.xz
mdadm-38098016cae12b5e840b3a5a24b0c5120a83971c.zip
Allow symlink creation to be disabled from command line or mdadm.conf
Diffstat (limited to 'mdadm.c')
-rw-r--r--mdadm.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/mdadm.c b/mdadm.c
index 9fe56ab..bc8aac8 100644
--- a/mdadm.c
+++ b/mdadm.c
@@ -75,6 +75,7 @@ int main(int argc, char *argv[])
int force = 0;
int test = 0;
int assume_clean = 0;
+ char *symlinks = NULL;
/* autof indicates whether and how to create device node.
* bottom 3 bits are style. Rest (when shifted) are number of parts
* 0 - unset
@@ -499,6 +500,12 @@ int main(int argc, char *argv[])
autof = parse_auto(optarg, "--auto flag", 0);
continue;
+ case O(CREATE,Symlinks):
+ case O(BUILD,Symlinks):
+ case O(ASSEMBLE,Symlinks): /* auto creation of symlinks in /dev to /dev/md */
+ symlinks = optarg;
+ continue;
+
case O(BUILD,'f'): /* force honouring '-n 1' */
case O(GROW,'f'): /* ditto */
case O(CREATE,'f'): /* force honouring of device list */
@@ -858,6 +865,19 @@ int main(int argc, char *argv[])
fputs(Usage, stderr);
exit(2);
}
+
+ if (symlinks) {
+ struct createinfo *ci = conf_get_create_info();
+
+ if (strcasecmp(symlinks, "yes") == 0)
+ ci->symlinks = 1;
+ else if (strcasecmp(symlinks, "no") == 0)
+ ci->symlinks = 0;
+ else {
+ fprintf(stderr, Name ": option --symlinks must be 'no' or 'yes'\n");
+ exit(2);
+ }
+ }
/* Ok, got the option parsing out of the way
* hopefully it's mostly right but there might be some stuff
* missing