From: NeilBrown Date: Thu, 31 Jul 2014 03:54:54 +0000 (+1000) Subject: md: disable probing for md devices 512 and over. X-Git-Tag: firefly_0821_release~176^2~3415^2~3 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=af5628f05db62c656f994b2346897939b5110d6a;p=firefly-linux-kernel-4.4.55.git md: disable probing for md devices 512 and over. The way md devices are traditionally created in the kernel is simply to open the device with the desired major/minor number. This can be problematic as some support tools, notably udev and programs run by udev, can open a device just to see what is there, and find that it has created something. It is easy for a race to cause udev to open an md device just after it was destroy, causing it to suddenly re-appear. For some time we have had an alternate way to create md devices echo md_somename > /sys/modules/md_mod/paramaters/new_array This will always use a minor number of 512 or higher, which mdadm normally avoids. Using this makes the creation-by-opening unnecessary, but does not disable it, so it is still there to cause problems. This patch disable probing for devices with a major of 9 (MD_MAJOR) and a minor of 512 and up. This devices created by writing to new_array cannot be re-created by opening the node in /dev. Signed-off-by: NeilBrown --- diff --git a/drivers/md/md.c b/drivers/md/md.c index 32fc19c540d4..1379b1a3b9ff 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -8592,7 +8592,7 @@ static int __init md_init(void) goto err_mdp; mdp_major = ret; - blk_register_region(MKDEV(MD_MAJOR, 0), 1UL<