summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2006-12-14 17:31:10 +1100
committerNeil Brown <neilb@suse.de>2006-12-14 17:31:10 +1100
commit757234466509aae6221c2cb96e8366f41ba7e532 (patch)
treec6bebe56053849971f8f2b7fad638bbc125d50a8
parentd645b91a1baf44e4674900f1124841fe6c0a2410 (diff)
downloadmdadm-757234466509aae6221c2cb96e8366f41ba7e532.tar.gz
mdadm-757234466509aae6221c2cb96e8366f41ba7e532.tar.xz
mdadm-757234466509aae6221c2cb96e8366f41ba7e532.zip
Default to --auto=yes
so the array devices with 'standard' names get created automatically, as this is almost always what is wanted.
-rw-r--r--ChangeLog2
-rw-r--r--config.c1
-rw-r--r--mdadm.816
-rw-r--r--mdopen.c14
4 files changed, 19 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 1c359f8..46af0ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,6 +8,8 @@ Changes Prior to this release
missing devices.
- Support --update=devicesize for cases where the underlying device
can change size.
+ - Default to --auto=yes so the array devices with 'standard' names
+ get created automatically, as this is almost always what is wanted.
Changes Prior to 2.5.6 release
- Fix bug which meant "bitmap=xxx" in mdadm.conf was not handled
diff --git a/config.c b/config.c
index 38e911a..7101c3b 100644
--- a/config.c
+++ b/config.c
@@ -255,6 +255,7 @@ mddev_dev_t load_partitions(void)
}
struct createinfo createinfo = {
+ .autof = 2, /* by default, create devices with standard names */
.symlinks = 1,
#ifdef DEBIAN
.gid = 6, /* disk */
diff --git a/mdadm.8 b/mdadm.8
index f761853..274609c 100644
--- a/mdadm.8
+++ b/mdadm.8
@@ -573,6 +573,10 @@ from this. See DEVICE NAMES below.
The argument can also come immediately after
"-a". e.g. "-ap".
+If --auto is not given on the command line or in the config file, then
+the default will be
+.BR --auto=yes .
+
If
.I --scan
is also given, then any
@@ -1060,13 +1064,11 @@ may work for RAID1, 4, 5, 6, or 10), give the
.B --run
flag.
-If an
-.B auto
-option is given, either on the command line (--auto) or in the
-configuration file (e.g. auto=part), then
-.I mdadm
-will create the md device if necessary or will re-create it if it
-doesn't look usable as it is.
+If the md device does not exist, then it will be created providing the
+intent is clear. i.e. the name must be in a standard form, or the
+.I --auto
+option must be given to clarify how and whether the device should be
+created.
This can be useful for handling partitioned devices (which don't have
a stable device number - it can change after a reboot) and when using
diff --git a/mdopen.c b/mdopen.c
index ce3a12e..9f3dfb8 100644
--- a/mdopen.c
+++ b/mdopen.c
@@ -135,10 +135,6 @@ int open_mddev(char *dev, int autof)
dev);
return -1;
}
- if (autof == 2 && stb.st_mode == 0 && !is_standard(dev, NULL)) {
- fprintf(stderr, Name ": --auto=yes requires a 'standard' md device name, not %s\n", dev);
- return -1;
- }
/* check major number is correct */
num = -1;
std = is_standard(dev, &num);
@@ -146,19 +142,23 @@ int open_mddev(char *dev, int autof)
switch(autof) {
case 2: /* only create is_standard names */
if (!std && !stb.st_mode) {
- fprintf(stderr, Name ": --auto=yes requires a 'standard' md device name, not %s\n", dev);
+ fprintf(stderr, Name
+ ": %s does not exist and is not a 'standard' name "
+ "so it cannot be created\n", dev);
return -1;
}
break;
case 3: /* create md, reject std>0 */
if (std > 0) {
- fprintf(stderr, Name ": that --auto option not compatable with device named %s\n", dev);
+ fprintf(stderr, Name ": that --auto option "
+ "not compatable with device named %s\n", dev);
return -1;
}
break;
case 4: /* create mdp, reject std<0 */
if (std < 0) {
- fprintf(stderr, Name ": that --auto option not compatable with device named %s\n", dev);
+ fprintf(stderr, Name ": that --auto option "
+ "not compatable with device named %s\n", dev);
return -1;
}
break;