X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev%2Fudevd.c;h=325ad034c2b2bc05554824acde20beadd39f7fca;hp=1220deaaa6619472fc00493d45a93d60845b11da;hb=a20a57a7bfbc6edd7602c135ca78f3e56878badb;hpb=869c9031608f0796bb4363d5de5db058fe96fedd diff --git a/udev/udevd.c b/udev/udevd.c index 1220deaaa..325ad034c 100644 --- a/udev/udevd.c +++ b/udev/udevd.c @@ -889,10 +889,11 @@ static void static_dev_create_from_modules(struct udev *udev) if (sscanf(devno, "%c%u:%u", &type, &maj, &min) != 3) continue; + /* set sticky bit, so we do not remove the node on module unload */ if (type == 'c') - mode = 0600 | S_IFCHR; + mode = 01600|S_IFCHR; else if (type == 'b') - mode = 0600 | S_IFBLK; + mode = 01600|S_IFBLK; else continue; @@ -1654,6 +1655,7 @@ int main(int argc, char *argv[]) dev = udev_monitor_receive_device(monitor); if (dev != NULL) + udev_device_set_usec_initialized(dev, now_usec()); if (event_queue_insert(dev) < 0) udev_device_unref(dev); }