From 757234466509aae6221c2cb96e8366f41ba7e532 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Thu, 14 Dec 2006 17:31:10 +1100 Subject: [PATCH] Default to --auto=yes so the array devices with 'standard' names get created automatically, as this is almost always what is wanted. --- ChangeLog | 2 ++ config.c | 1 + mdadm.8 | 16 +++++++++------- mdopen.c | 14 +++++++------- 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1c359f85..46af0ee1 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 38e911ac..7101c3b0 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 f761853c..274609c1 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 ce3a12e8..9f3dfb84 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; -- 2.39.2