How to force mdadm to use udev device names rather than /dev/sdX

The question is mostly in the title already.

mdadm and /proc/mdstat insist on listing md members by their "traditional" /dev/sdX names. What I want is for them to use the newer udev device names (e.g. /dev/disk/by-path and by-id).

I already changed /etc/mdadm/mdadm.conf from

DEVICE partitions

to

DEVICE /dev/disk/by-path/*

But this seems to have no effect at all.

Also the arrays were cerated using the by-path device names.

This is on Ubuntu 11.10.

Current /proc/mdstat:

~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid5 sdi[4] sde[2] sdh[1] sdd[0]
      2929651200 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUU_]
      [=>...................]  recovery =  7.0% (69242720/976550400) finish=632.8min speed=23893K/sec

md0 : active raid5 sdb[0] sdg[4] sdc[2] sdf[1]
      2197228032 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUU_]
      [===>.................]  recovery = 19.8% (145510552/732409344) finish=242.7min speed=40288K/sec

unused devices: <none>

ls -l /dev/disk/by-path:

~# ll /dev/disk/by-path/
total 0
lrwxrwxrwx 1 root root  9 2012-04-11 01:15 pci-0000:00:1f.1-scsi-0:0:0:0 -> ../../sr0
lrwxrwxrwx 1 root root  9 2012-04-11 01:15 pci-0000:00:1f.2-scsi-1:0:0:0 -> ../../sda
lrwxrwxrwx 1 root root 10 2012-04-11 01:15 pci-0000:00:1f.2-scsi-1:0:0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 2012-04-11 01:15 pci-0000:00:1f.2-scsi-1:0:0:0-part2 -> ../../sda2
lrwxrwxrwx 1 root root  9 2012-04-11 01:19 pci-0000:0e:00.0-scsi-0:0:0:0 -> ../../sdb
lrwxrwxrwx 1 root root  9 2012-04-11 01:19 pci-0000:0e:00.0-scsi-0:0:1:0 -> ../../sdc
lrwxrwxrwx 1 root root  9 2012-04-11 01:15 pci-0000:0e:00.0-scsi-0:0:2:0 -> ../../sdd
lrwxrwxrwx 1 root root  9 2012-04-11 01:26 pci-0000:0e:00.0-scsi-0:0:3:0 -> ../../sde
lrwxrwxrwx 1 root root  9 2012-04-11 01:15 pci-0000:0e:00.0-scsi-0:0:4:0 -> ../../sdf
lrwxrwxrwx 1 root root  9 2012-04-11 01:15 pci-0000:0e:00.0-scsi-0:0:5:0 -> ../../sdg
lrwxrwxrwx 1 root root  9 2012-04-11 01:26 pci-0000:0e:00.0-scsi-0:0:6:0 -> ../../sdh
lrwxrwxrwx 1 root root  9 2012-04-11 01:26 pci-0000:0e:00.0-scsi-0:0:7:0 -> ../../sdi

Not possible. Those symlinks (created by udev) are convenient for userspace, and mdadm can use them when it's communicating to the kernel… which will look at the block to find the real device. There's no mechanism for informing the kernel of aliases or new names, and it's the kernel producing these messages, using its internal canonical names.

There were several attempts to get /sys/block/<disk>/alias_name into the Linux kernel and update output to use the alias name, but the most recent attempt was rejected.