]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: introduce link_save_and_clean()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 20 Jul 2020 20:21:28 +0000 (05:21 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 22 Jul 2020 10:55:14 +0000 (19:55 +0900)
src/network/networkd-link-bus.c
src/network/networkd-link.c
src/network/networkd-link.h
src/network/networkd-manager.c

index be1967150533376db94fa21873b46dec2d1f1b3f..ad114e1173d64afb0abb2633af8e9ca37c8bd89f 100644 (file)
@@ -629,10 +629,9 @@ int bus_link_method_reconfigure(sd_bus_message *message, void *userdata, sd_bus_
                 return r;
 
         link_set_state(l, LINK_STATE_INITIALIZED);
-        r = link_save(l);
+        r = link_save_and_clean(l);
         if (r < 0)
                 return r;
-        link_clean(l);
 
         return sd_bus_reply_method_return(message, NULL);
 }
index 1d73a3c34fe3ce0bde74cf40a67679240e72c66b..092d130a44d90476adf5a44af3881f7f9cc5827e 100644 (file)
@@ -4525,6 +4525,17 @@ void link_clean(Link *link) {
         link_unref(set_remove(link->manager->dirty_links, link));
 }
 
+int link_save_and_clean(Link *link) {
+        int r;
+
+        r = link_save(link);
+        if (r < 0)
+                return r;
+
+        link_clean(link);
+        return 0;
+}
+
 static const char* const link_state_table[_LINK_STATE_MAX] = {
         [LINK_STATE_PENDING] = "pending",
         [LINK_STATE_INITIALIZED] = "initialized",
index e73697050307f26fb018ad40de59690bc7665698..453418012886083ef7c94fdec114c91f209ba7e7 100644 (file)
@@ -208,6 +208,7 @@ int link_update(Link *link, sd_netlink_message *message);
 void link_dirty(Link *link);
 void link_clean(Link *link);
 int link_save(Link *link);
+int link_save_and_clean(Link *link);
 
 int link_carrier_reset(Link *link);
 bool link_has_carrier(Link *link);
index c287367d29aaa7e1ec34116624a0de0e65595098..59ec0de8d34a27c3bda10bed09895d299d273568 100644 (file)
@@ -1727,8 +1727,7 @@ static int manager_dirty_handler(sd_event_source *s, void *userdata) {
                 manager_save(m);
 
         SET_FOREACH(link, m->dirty_links, i)
-                if (link_save(link) >= 0)
-                        link_clean(link);
+                (void) link_save_and_clean(link);
 
         return 1;
 }
@@ -1899,7 +1898,7 @@ int manager_start(Manager *m) {
         manager_save(m);
 
         HASHMAP_FOREACH(link, m->links, i)
-                link_save(link);
+                (void) link_save(link);
 
         return 0;
 }