diff options
author | Dan Williams <dan.j.williams@intel.com> | 2009-01-20 01:36:50 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2009-01-20 01:36:50 -0700 |
commit | 6f4098a6fd809acd6ef6a80051eec09f4536a27d (patch) | |
tree | 6d467305ffc463cf018723bef51bc47947d2b165 /mdmon.c | |
parent | 03cd4cc810fdaea1613fa6a792564aa96451f447 (diff) | |
download | mdadm-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.c | 21 |
1 files changed, 18 insertions, 3 deletions
@@ -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); |