Default to --auto=yes

so the array devices with 'standard' names
get created automatically, as this is almost always what is wanted.
This commit is contained in:
Neil Brown 2006-12-14 17:31:10 +11:00
parent d645b91a1b
commit 7572344665
4 changed files with 19 additions and 14 deletions

View File

@ -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

View File

@ -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 */

16
mdadm.8
View File

@ -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

View File

@ -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;