HomeFreeBSD

cam_get_device: resolve path links before parsing device name

Description

cam_get_device: resolve path links before parsing device name

The CAM subsystem uses bus:taget:lun tuple to address peripherals. But
for convenience many userland programs such as camcontrol accept devices
names such as da0. There is a libcam function, cam_open_device, to
support that. It first calls cam_get_device() to parse the device name
as a driver name and a unit (and handle some special device name
prefixes) and then uses cam_lookup_pass() to find a matching pass
device.

This change extends cam_get_device() to apply realpath(3) to the device
name before parsing it. This will allow to use tools such as camcontrol
and smartctl with symbolic links that could be friendlier (more
distinguished) names for devices.

Relnotes: maybe

(cherry picked from commit 1abf1e8c6b13f50eed08fef6fb1ade280894f1e4)

Details

Provenance
avgAuthored on Nov 27 2021, 6:49 PM
Parents
rGbd8bde138531: Merge bmake-20220208
Branches
Unknown
Tags
Unknown