]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-event: Only register memory presure if write buffer size is zero
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 14 Nov 2025 09:28:43 +0000 (10:28 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 14 Nov 2025 09:34:32 +0000 (10:34 +0100)
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

index 120e67cc31842385e338a7bd923c2b2d717da244..7d8d779742f4c445499fb1fb6799c04cae374a93 100644 (file)
@@ -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;