From d0ddb0aafb2c678382aad04ff6eafaac86749857 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Fri, 14 Nov 2025 10:28:43 +0100 Subject: [PATCH] sd-event: Only register memory presure if write buffer size is zero As documented in sd_event_add_memory_pressure(), we can only add the memory pressure fd to epoll once we've written the watch string, so make sure we don't register the memory pressure in event_source_online() until we've written the watch string. --- src/libsystemd/sd-event/sd-event.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c index 120e67cc318..7d8d779742f 100644 --- a/src/libsystemd/sd-event/sd-event.c +++ b/src/libsystemd/sd-event/sd-event.c @@ -2987,9 +2987,11 @@ static int event_source_online( break; case SOURCE_MEMORY_PRESSURE: - r = source_memory_pressure_register(s, enabled); - if (r < 0) - return r; + if (s->memory_pressure.write_buffer_size == 0) { + r = source_memory_pressure_register(s, enabled); + if (r < 0) + return r; + } break; -- 2.47.3