]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mapfile.c
Only signal a udev change event if we actually write a mapfile in RebuildMap
[thirdparty/mdadm.git] / mapfile.c
index 74f72560e32b144a0707c3f15fe4599341f797b9..d47fde1463b8adf9758e9391f58fe79967cc8633 100644 (file)
--- a/mapfile.c
+++ b/mapfile.c
@@ -471,12 +471,14 @@ void RebuildMap(void)
                }
                sysfs_free(sra);
        }
-       map_write(map);
+       /* Only trigger a change if we wrote a new map file */
+       if (map_write(map))
+               for (md = mdstat ; md ; md = md->next) {
+                       struct mdinfo *sra = sysfs_read(-1, md->devnum,
+                                                       GET_VERSION);
+                       sysfs_uevent(sra, "change");
+                       sysfs_free(sra);
+               }
        map_free(map);
-       for (md = mdstat ; md ; md = md->next) {
-               struct mdinfo *sra = sysfs_read(-1, md->devnum, GET_VERSION);
-               sysfs_uevent(sra, "change");
-               sysfs_free(sra);
-       }
        free_mdstat(mdstat);
 }