Для каждого scsi_device
вы можете получить scsi_host
, который соответствует ему, а оттуда scsi_host_template
, который является vtable таблицы SCSI LLD. Оттуда вы можете посмотреть на поле имени. drivers / scsi / storage / usb.c говорит нам, что строка должна быть «usb-storage».
Итак, я думаю, что с учетом sdev в качестве указателя scsi_device sdev->shost->hostt->name
должно преобразовываться в «usb-storage» в случае, если это LUN с запоминающего устройства USB. С точки зрения дизайна, это можно считать своего рода «взломом» для выполнения задачи таким способом, но без надлежащих API это самый простой способ.