summaryrefslogtreecommitdiffstats
path: root/mapfile.c
diff options
context:
space:
mode:
authorDoug Ledford <dledford@redhat.com>2010-03-17 09:28:07 -0400
committerNeilBrown <neilb@suse.de>2010-03-24 09:37:39 +1100
commit7bf59f5c16d928d3826fdf0c406d1aac5775e78b (patch)
treec3a54f3c264182acaf2f92d1c1c3b01080445a61 /mapfile.c
parente259df4e63f553c1271fa7d7612c110d2518e572 (diff)
downloadmdadm-7bf59f5c16d928d3826fdf0c406d1aac5775e78b.tar.gz
mdadm-7bf59f5c16d928d3826fdf0c406d1aac5775e78b.tar.xz
mdadm-7bf59f5c16d928d3826fdf0c406d1aac5775e78b.zip
Only signal a udev change event if we actually write a mapfile in RebuildMap
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'mapfile.c')
-rw-r--r--mapfile.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/mapfile.c b/mapfile.c
index 74f7256..d47fde1 100644
--- 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);
}