Zbigniew Jędrzejewski-Szmek 47c564
From f230c64b5ad069b271f163da3142df52eab1202b Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 47c564
From: Lennart Poettering <lennart@poettering.net>
Zbigniew Jędrzejewski-Szmek 47c564
Date: Wed, 26 Feb 2014 04:27:50 +0100
Zbigniew Jędrzejewski-Szmek 47c564
Subject: [PATCH] mount: don't send out PropertiesChanged message if actually
Zbigniew Jędrzejewski-Szmek 47c564
 nothing got changed
Zbigniew Jędrzejewski-Szmek 47c564
Zbigniew Jędrzejewski-Szmek 47c564
(cherry picked from commit ff5f34d08c191c326c41a083745522383ac86cae)
Zbigniew Jędrzejewski-Szmek 47c564
---
Zbigniew Jędrzejewski-Szmek 47c564
 src/core/mount.c | 15 ++++++++++++---
Zbigniew Jędrzejewski-Szmek 47c564
 1 file changed, 12 insertions(+), 3 deletions(-)
Zbigniew Jędrzejewski-Szmek 47c564
Zbigniew Jędrzejewski-Szmek 47c564
diff --git a/src/core/mount.c b/src/core/mount.c
Zbigniew Jędrzejewski-Szmek 47c564
index a0cea1e..75b133b 100644
Zbigniew Jędrzejewski-Szmek 47c564
--- a/src/core/mount.c
Zbigniew Jędrzejewski-Szmek 47c564
+++ b/src/core/mount.c
Zbigniew Jędrzejewski-Szmek 47c564
@@ -1388,7 +1388,7 @@ static int mount_add_one(
Zbigniew Jędrzejewski-Szmek 47c564
         _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL;
Zbigniew Jędrzejewski-Szmek 47c564
         bool load_extras = false;
Zbigniew Jędrzejewski-Szmek 47c564
         MountParameters *p;
Zbigniew Jędrzejewski-Szmek 47c564
-        bool delete;
Zbigniew Jędrzejewski-Szmek 47c564
+        bool delete, changed = false;
Zbigniew Jędrzejewski-Szmek 47c564
         Unit *u;
Zbigniew Jędrzejewski-Szmek 47c564
         int r;
Zbigniew Jędrzejewski-Szmek 47c564
 
Zbigniew Jędrzejewski-Szmek 47c564
@@ -1456,6 +1456,7 @@ static int mount_add_one(
Zbigniew Jędrzejewski-Szmek 47c564
                 }
Zbigniew Jędrzejewski-Szmek 47c564
 
Zbigniew Jędrzejewski-Szmek 47c564
                 unit_add_to_load_queue(u);
Zbigniew Jędrzejewski-Szmek 47c564
+                changed = true;
Zbigniew Jędrzejewski-Szmek 47c564
         } else {
Zbigniew Jędrzejewski-Szmek 47c564
                 delete = false;
Zbigniew Jędrzejewski-Szmek 47c564
 
Zbigniew Jędrzejewski-Szmek 47c564
@@ -1474,6 +1475,7 @@ static int mount_add_one(
Zbigniew Jędrzejewski-Szmek 47c564
                         /* Load in the extras later on, after we
Zbigniew Jędrzejewski-Szmek 47c564
                          * finished initialization of the unit */
Zbigniew Jędrzejewski-Szmek 47c564
                         load_extras = true;
Zbigniew Jędrzejewski-Szmek 47c564
+                        changed = true;
Zbigniew Jędrzejewski-Szmek 47c564
                 }
Zbigniew Jędrzejewski-Szmek 47c564
         }
Zbigniew Jędrzejewski-Szmek 47c564
 
Zbigniew Jędrzejewski-Szmek 47c564
@@ -1485,10 +1487,16 @@ static int mount_add_one(
Zbigniew Jędrzejewski-Szmek 47c564
         }
Zbigniew Jędrzejewski-Szmek 47c564
 
Zbigniew Jędrzejewski-Szmek 47c564
         p = &MOUNT(u)->parameters_proc_self_mountinfo;
Zbigniew Jędrzejewski-Szmek 47c564
+
Zbigniew Jędrzejewski-Szmek 47c564
+        changed = changed ||
Zbigniew Jędrzejewski-Szmek 47c564
+                !streq_ptr(p->options, options) ||
Zbigniew Jędrzejewski-Szmek 47c564
+                !streq_ptr(p->what, what) ||
Zbigniew Jędrzejewski-Szmek 47c564
+                !streq_ptr(p->fstype, fstype);
Zbigniew Jędrzejewski-Szmek 47c564
+
Zbigniew Jędrzejewski-Szmek 47c564
         if (set_flags) {
Zbigniew Jędrzejewski-Szmek 47c564
                 MOUNT(u)->is_mounted = true;
Zbigniew Jędrzejewski-Szmek 47c564
                 MOUNT(u)->just_mounted = !MOUNT(u)->from_proc_self_mountinfo;
Zbigniew Jędrzejewski-Szmek 47c564
-                MOUNT(u)->just_changed = !streq_ptr(p->options, o);
Zbigniew Jędrzejewski-Szmek 47c564
+                MOUNT(u)->just_changed = changed;
Zbigniew Jędrzejewski-Szmek 47c564
         }
Zbigniew Jędrzejewski-Szmek 47c564
 
Zbigniew Jędrzejewski-Szmek 47c564
         MOUNT(u)->from_proc_self_mountinfo = true;
Zbigniew Jędrzejewski-Szmek 47c564
@@ -1511,7 +1519,8 @@ static int mount_add_one(
Zbigniew Jędrzejewski-Szmek 47c564
                         goto fail;
Zbigniew Jędrzejewski-Szmek 47c564
         }
Zbigniew Jędrzejewski-Szmek 47c564
 
Zbigniew Jędrzejewski-Szmek 47c564
-        unit_add_to_dbus_queue(u);
Zbigniew Jędrzejewski-Szmek 47c564
+        if (changed)
Zbigniew Jędrzejewski-Szmek 47c564
+                unit_add_to_dbus_queue(u);
Zbigniew Jędrzejewski-Szmek 47c564
 
Zbigniew Jędrzejewski-Szmek 47c564
         return 0;
Zbigniew Jędrzejewski-Szmek 47c564