From: Yu Watanabe Date: Thu, 5 Sep 2024 23:58:18 +0000 (+0900) Subject: network/route: ignore EEXIST reply when the corresponding request is already detached X-Git-Tag: v257-rc1~539 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=195bb6f97ebc5cd5e9932c62aa80df5427c30d67;p=thirdparty%2Fsystemd.git network/route: ignore EEXIST reply when the corresponding request is already detached Follow-ups for db8dc7c1dd7f4620e14fbc4c1560a68a1fc9b85b. Fixes #34275. --- diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c index 23adefc66a4..4ed2c53888e 100644 --- a/src/network/networkd-route.c +++ b/src/network/networkd-route.c @@ -719,6 +719,13 @@ static int route_update_on_existing(Request *req) { Route *rt = ASSERT_PTR(ASSERT_PTR(req)->userdata); int r; + if (!req->manager) + /* Already detached? At least there are two posibilities then. + * 1) The interface is removed, and all queued requests for the interface are cancelled. + * 2) networkd is now stopping, hence all queued requests are cancelled. + * Anyway, we can ignore the request, and there is nothing we can do. */ + return 0; + if (rt->family == AF_INET || ordered_set_isempty(rt->nexthops)) return route_update_on_existing_one(req, rt);