]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Alway use a unique file name for opendev
authorNeil Brown <neilb@suse.de>
Mon, 26 May 2008 23:18:33 +0000 (09:18 +1000)
committerNeil Brown <neilb@suse.de>
Mon, 26 May 2008 23:18:33 +0000 (09:18 +1000)
Else mdadm and mdmon running in parallel can tread on each other.

util.c

diff --git a/util.c b/util.c
index c6273826d82c3da0082b421f16c640afc5d074cd..8e4e60d3bc8ebee09a6a212d615f61eeb2c77c21 100644 (file)
--- a/util.c
+++ b/util.c
@@ -770,7 +770,8 @@ int dev_open(char *dev, int flags)
        if (e > dev && *e == ':' && e[1] &&
            (minor = strtoul(e+1, &e, 0)) >= 0 &&
            *e == 0) {
        if (e > dev && *e == ':' && e[1] &&
            (minor = strtoul(e+1, &e, 0)) >= 0 &&
            *e == 0) {
-               snprintf(devname, sizeof(devname), "/dev/.tmp.md.%d:%d", major, minor);
+               snprintf(devname, sizeof(devname), "/dev/.tmp.md.%d:%d:%d",
+                        (int)getpid(), major, minor);
                if (mknod(devname, S_IFBLK|0600, makedev(major, minor))==0) {
                        fd = open(devname, flags);
                        unlink(devname);
                if (mknod(devname, S_IFBLK|0600, makedev(major, minor))==0) {
                        fd = open(devname, flags);
                        unlink(devname);