summaryrefslogtreecommitdiffstats
path: root/util.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2008-11-20 14:51:42 +1100
committerNeilBrown <neilb@suse.de>2008-11-20 14:51:42 +1100
commite8a70c89585ddca2bcb4160808f64506c64df13b (patch)
tree056c7f8aa0eb9bc1b4b76132d419226c12095030 /util.c
parentbf68e9d9ab185121b6004fc81b531bce8348726d (diff)
downloadmdadm-e8a70c89585ddca2bcb4160808f64506c64df13b.tar.gz
mdadm-e8a70c89585ddca2bcb4160808f64506c64df13b.tar.xz
mdadm-e8a70c89585ddca2bcb4160808f64506c64df13b.zip
mdmon: pass symbolic name to mdmon instead of device name.
Now that names in /dev are usually created (eventually) by udev, it isn't really safe to rely in finding a name in /dev to pass to mdmon to identify which array to monitor. And it isn't really necessary to have a name in /dev. So just pass the symbolic name, e.g. md127 or md123. Change util.c to pass that name, and change mdmon to process the name sensibly. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'util.c')
-rw-r--r--util.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/util.c b/util.c
index b2fbec7..e613a0c 100644
--- a/util.c
+++ b/util.c
@@ -813,6 +813,14 @@ int dev_open(char *dev, int flags)
return fd;
}
+int open_dev(int devnum)
+{
+ char buf[20];
+
+ sprintf(buf, "%d:%d", dev2major(devnum), dev2minor(devnum));
+ return dev_open(buf, O_RDWR);
+}
+
int open_dev_excl(int devnum)
{
char buf[20];
@@ -1261,9 +1269,8 @@ int start_mdmon(int devnum)
for (i=0; paths[i]; i++)
if (paths[i][0])
execl(paths[i], "mdmon",
- map_dev(dev2major(devnum),
- dev2minor(devnum),
- 1), NULL);
+ devnum2devname(devnum),
+ NULL);
exit(1);
case -1: fprintf(stderr, Name ": cannot run mdmon. "
"Array remains readonly\n");