summaryrefslogtreecommitdiffstats
path: root/mdmon.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2009-01-20 01:36:50 -0700
committerDan Williams <dan.j.williams@intel.com>2009-01-20 01:36:50 -0700
commit6f4098a6fd809acd6ef6a80051eec09f4536a27d (patch)
tree6d467305ffc463cf018723bef51bc47947d2b165 /mdmon.c
parent03cd4cc810fdaea1613fa6a792564aa96451f447 (diff)
downloadmdadm-6f4098a6fd809acd6ef6a80051eec09f4536a27d.tar.gz
mdadm-6f4098a6fd809acd6ef6a80051eec09f4536a27d.tar.xz
mdadm-6f4098a6fd809acd6ef6a80051eec09f4536a27d.zip
mdmon: expand permissible container device names
Allow any path that dereferences to an md device to be used in addition to the current symbolic md device names. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'mdmon.c')
-rw-r--r--mdmon.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/mdmon.c b/mdmon.c
index d39b88cb..5aad763 100644
--- a/mdmon.c
+++ b/mdmon.c
@@ -306,9 +306,24 @@ int main(int argc, char *argv[])
usage();
}
- devnum = devname2devnum(container_name);
- devname = devnum2devname(devnum);
- if (strcmp(container_name, devname) != 0) {
+ if (strncmp(container_name, "md", 2) == 0) {
+ devnum = devname2devnum(container_name);
+ devname = devnum2devname(devnum);
+ if (strcmp(container_name, devname) != 0)
+ devname = NULL;
+ } else {
+ struct stat st;
+
+ devnum = NoMdDev;
+ if (stat(container_name, &st) == 0)
+ devnum = stat2devnum(&st);
+ if (devnum == NoMdDev)
+ devname = NULL;
+ else
+ devname = devnum2devname(devnum);
+ }
+
+ if (!devname) {
fprintf(stderr, "mdmon: %s is not a valid md device name\n",
container_name);
exit(1);