path_id: reintroduce by-path links for virtio block devices
authorMichal Sekletar <msekleta@redhat.com>
Tue, 9 Feb 2016 08:57:45 +0000 (09:57 +0100)
committerMichal Sekletar <msekleta@redhat.com>
Tue, 9 Feb 2016 11:25:42 +0000 (12:25 +0100)
commitf073b1b3c0f4f0df1b0bd61042ce85fb5d27d407
tree0a849ee98e45e1c3ec8328d3636b3600f02fbdb9
parent70b65964d7ef03621f5d4abd23150c1b121989b4
path_id: reintroduce by-path links for virtio block devices

Enumeration of virtio buses is global and hence
non-deterministic. However, we are guaranteed there is never going to be
more than one virtio bus per parent PCI device. While populating
ID_PATH we simply skip virtio part of the syspath and we extend the path
using the sysname of the parent PCI device.

With this patch udev creates following by-path links for virtio-blk
device /dev/vda which contains two partitions.

ls -l /dev/disk/by-path/
total 0
lrwxrwxrwx 1 root root  9 Feb  9 10:47 virtio-pci-0000:00:05.0 -> ../../vda
lrwxrwxrwx 1 root root 10 Feb  9 10:47 virtio-pci-0000:00:05.0-part1 -> ../../vda1
lrwxrwxrwx 1 root root 10 Feb  9 10:47 virtio-pci-0000:00:05.0-part2 -> ../../vda2

See:
http://lists.linuxfoundation.org/pipermail/virtualization/2015-August/030328.html

Fixes #2501
src/udev/udev-builtin-path_id.c