X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fdevice.c;h=5289da3e42ef210896f4bb11c9cf3640415ab0ee;hp=b5763645e8851fedb87c6daf5bd3d93234eeba13;hb=e2f3b44cfc8864bfea7c77ff4c383ce9b535f27e;hpb=99448c1f01d79891e0afdfcf3ec8ed9fa92502ae diff --git a/src/device.c b/src/device.c index b5763645e..5289da3e4 100644 --- a/src/device.c +++ b/src/device.c @@ -92,7 +92,7 @@ static void device_set_state(Device *d, DeviceState state) { device_state_to_string(old_state), device_state_to_string(state)); - unit_notify(UNIT(d), state_translation_table[old_state], state_translation_table[state]); + unit_notify(UNIT(d), state_translation_table[old_state], state_translation_table[state], true); } static int device_coldplug(Unit *u) { @@ -468,8 +468,10 @@ static int device_enumerate(Manager *m) { goto fail; } - if (udev_monitor_set_receive_buffer_size(m->udev_monitor, 128*1024*1024) < 0) - log_error("Failed to set udev event buffer size."); + /* This will fail if we are unprivileged, but that + * should not matter much, as user instances won't run + * during boot. */ + udev_monitor_set_receive_buffer_size(m->udev_monitor, 128*1024*1024); if (udev_monitor_filter_add_match_tag(m->udev_monitor, "systemd") < 0) { r = -ENOMEM; @@ -533,7 +535,8 @@ void device_fd_event(Manager *m, int events) { if (!ratelimit_test(&limit)) log_error("Failed to get udev event: %m"); - return; + if (!(events & EPOLLIN)) + return; } if (!(dev = udev_monitor_receive_device(m->udev_monitor))) {