From: Sven Wiltink Date: Fri, 1 May 2020 14:35:40 +0000 (+0200) Subject: lsblk: Fall back to ID_SERIAL X-Git-Tag: v2.36-rc1~122 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e81d0f80068086147434fa947a4f723c00318772;p=thirdparty%2Futil-linux.git lsblk: Fall back to ID_SERIAL In some cases ID_SERIAL_SHORT isn't provided by libudev, but ID_SERIAL is. An example of this are virtio devices. See the output of udevadm info: P: /devices/pci0000:00/0000:00:06.0/virtio2/block/vdb N: vdb S: disk/by-id/virtio-08491434ee711d3420e9 S: disk/by-path/pci-0000:00:06.0 S: disk/by-path/virtio-pci-0000:00:06.0 E: DEVLINKS=/dev/disk/by-id/virtio-08491434ee711d3420e9 /dev/disk/by-path/pci-0000:00:06.0 /dev/disk/by-path/virtio-pci-0000:00:06.0 E: DEVNAME=/dev/vdb E: DEVPATH=/devices/pci0000:00/0000:00:06.0/virtio2/block/vdb E: DEVTYPE=disk E: ID_PATH=pci-0000:00:06.0 E: ID_PATH_TAG=pci-0000_00_06_0 E: ID_SERIAL=08491434ee711d3420e9 E: MAJOR=252 E: MINOR=16 E: SUBSYSTEM=block E: TAGS=:systemd: E: USEC_INITIALIZED=1403804 [kzak@redhat.com: - add ID_SERIAL also to get_properties_by_file()] Signed-off-by: Karel Zak --- diff --git a/misc-utils/lsblk-properties.c b/misc-utils/lsblk-properties.c index 6f41eacfd0..9e79be3533 100644 --- a/misc-utils/lsblk-properties.c +++ b/misc-utils/lsblk-properties.c @@ -107,6 +107,8 @@ static struct lsblk_devprop *get_properties_by_udev(struct lsblk_device *ld) data = udev_device_get_property_value(dev, "ID_SCSI_SERIAL"); if(!data) data = udev_device_get_property_value(dev, "ID_SERIAL_SHORT"); + if(!data) + data = udev_device_get_property_value(dev, "ID_SERIAL"); if (data) prop->serial = xstrdup(data); @@ -209,6 +211,7 @@ static struct lsblk_devprop *get_properties_by_file(struct lsblk_device *ld) else if (lookup(buf, "ID_WWN", &prop->wwn)) ; else if (lookup(buf, "ID_SCSI_SERIAL", &prop->serial)) ; else if (lookup(buf, "ID_SERIAL_SHORT", &prop->serial)) ; + else if (lookup(buf, "ID_SERIAL", &prop->serial)) ; /* lsblk specific */ else if (lookup(buf, "MODE", &prop->mode)) ;