From 986ab0d2dc161dfa026e8fc7a609f9efb8cb4397 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 25 Nov 2018 15:04:26 +0900 Subject: [PATCH] udevd: do not set buffer size if the socket is passed from pid1 Before c4b69e990f962128cc6975e36e91e9ad838fa2c4, if the socket fd is passed from pid1, `udev_monitor_set_receive_buffer_size()` (now it is a wrapper of `sd_device_monitor_set_receive_buffer_size()`) was not called. Let's preserve the original logic. --- src/udev/udevd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 6eacfe811f..aeec7fa77c 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -1629,7 +1629,8 @@ static int manager_new(Manager **ret, int fd_ctrl, int fd_uevent, const char *cg if (r < 0) return log_error_errno(r, "Failed to initialize device monitor: %m"); - (void) sd_device_monitor_set_receive_buffer_size(manager->monitor, 128 * 1024 * 1024); + if (fd_uevent < 0) + (void) sd_device_monitor_set_receive_buffer_size(manager->monitor, 128 * 1024 * 1024); /* unnamed socket from workers to the main daemon */ r = socketpair(AF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0, manager->worker_watch);