chiark / gitweb /
udev: guard REREADP logic with open(O_ECXL)
[elogind.git] / src / udev / udevd.c
index 763062f21906b1a720c230b0f69ecfdd135c91b0..d79891a7ca207322072be254690905a3e54c9a7b 100644 (file)
@@ -754,7 +754,7 @@ static int synthesize_change(struct udev_device *dev) {
                  * The kernel will send out a change event for the disk, and
                  * "remove/add" for all partitions.
                  */
-                fd = open(udev_device_get_devnode(dev), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK);
+                fd = open(udev_device_get_devnode(dev), O_RDONLY|O_EXCL|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK);
                 if (fd >= 0) {
                         r = ioctl(fd, BLKRRPART, 0);
                         close(fd);