diff options
author | NeilBrown <neilb@suse.de> | 2008-11-20 14:51:42 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2008-11-20 14:51:42 +1100 |
commit | e8a70c89585ddca2bcb4160808f64506c64df13b (patch) | |
tree | 056c7f8aa0eb9bc1b4b76132d419226c12095030 /util.c | |
parent | bf68e9d9ab185121b6004fc81b531bce8348726d (diff) | |
download | mdadm-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.c | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -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"); |