From: Sebastian Parschauer Date: Wed, 17 Feb 2016 16:25:00 +0000 (+0100) Subject: md: Drop sending a change uevent when stopping X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=399146b80ed6fb9f1ebe5a07234f00dff446d2b4;p=linux-beck.git md: Drop sending a change uevent when stopping When stopping an MD device, then its device node /dev/mdX may still exist afterwards or it is recreated by udev. The next open() call can lead to creation of an inoperable MD device. The reason for this is that a change event (KOBJ_CHANGE) is sent to udev which races against the remove event (KOBJ_REMOVE) from md_free(). So drop sending the change event. A change is likely also required in mdadm as many versions send the change event to udev as well. Neil mentioned the change event is a workaround for old kernel Commit: 934d9c23b4c7 ("md: destroy partitions and notify udev when md array is stopped.") new mdadm can handle device remove now, so this isn't required any more. Cc: NeilBrown Cc: Hannes Reinecke Cc: Jes Sorensen Signed-off-by: Sebastian Parschauer Signed-off-by: Shaohua Li --- diff --git a/drivers/md/md.c b/drivers/md/md.c index e55e6cf9ec17..464627b7e820 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -5671,7 +5671,6 @@ static int do_md_stop(struct mddev *mddev, int mode, export_array(mddev); md_clean(mddev); - kobject_uevent(&disk_to_dev(mddev->gendisk)->kobj, KOBJ_CHANGE); if (mddev->hold_active == UNTIL_STOP) mddev->hold_active = 0; }