HomeFreeBSD

Better zfs_get_enclosure_sysfs_path() enclosure support

Description

Better zfs_get_enclosure_sysfs_path() enclosure support

A multpathed disk will have several 'underlying' paths to the disk. For
example, multipath disk 'dm-0' may be made up of paths:
/dev/{sda,sdb,sdc,sdd}. On many enclosures those underlying sysfs
paths will have a symlink back to their enclosure device entry
(like 'enclosure_device0/slot1'). This is used by the
statechange-led.sh script to set/clear the fault LED for a disk, and
by 'zpool status -c'.

However, on some enclosures, those underlying paths may not all have
symlinks back to the enclosure device. Maybe only two out of four
of them might.

This patch updates zfs_get_enclosure_sysfs_path() to favor returning
paths that have symlinks back to their enclosure devices, rather
than just returning the first path.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
Closes #11617

Details

Provenance
Tony Hutter <hutter2@llnl.gov>Authored on Feb 21 2021, 4:17 AM
GitHub <noreply@github.com>Committed on Feb 21 2021, 4:17 AM
Parents
rGc0801bf35a09: Cleaning up uio headers
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rG7e56b05058c8: Better zfs_get_enclosure_sysfs_path() enclosure support (authored by Tony Hutter <hutter2@llnl.gov>).Feb 21 2021, 4:17 AM