From: Yu Watanabe Date: Wed, 20 Jan 2021 08:18:10 +0000 (+0900) Subject: network: use conservative_rename() to reduce to trigger network events X-Git-Tag: v248-rc1~233^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=af664001f5231365e01980ab95ad3115b6ad83a6;p=thirdparty%2Fsystemd.git network: use conservative_rename() to reduce to trigger network events networkd part to fix #17577. Note resolved part is f3e1f00d03445911ee73729219cea88c8a70c612. --- diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 5fbf88c3328..fe6d3bd927c 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -16,6 +16,7 @@ #include "ethtool-util.h" #include "fd-util.h" #include "fileio.h" +#include "fs-util.h" #include "ipvlan.h" #include "missing_network.h" #include "netlink-util.h" @@ -3175,10 +3176,9 @@ int link_save(Link *link) { if (r < 0) goto fail; - if (rename(temp_path, link->state_file) < 0) { - r = -errno; + r = conservative_rename(temp_path, link->state_file); + if (r < 0) goto fail; - } return 0; diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index bf15ba65352..befecdc323b 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -23,6 +23,7 @@ #include "fd-util.h" #include "fileio.h" #include "firewall-util.h" +#include "fs-util.h" #include "local-addresses.h" #include "netlink-util.h" #include "network-internal.h" @@ -709,10 +710,9 @@ static int manager_save(Manager *m) { if (r < 0) goto fail; - if (rename(temp_path, m->state_file) < 0) { - r = -errno; + r = conservative_rename(temp_path, m->state_file); + if (r < 0) goto fail; - } if (m->operational_state != operstate) { m->operational_state = operstate;