nvme should use namespace GUID for devid if available
The nvme driver is currently ignoring the namespace GUID which NVMe 1.2 introduced. Many devices that support a NGUID do not set the EUI64, so the devid is constructed from vendor ID, model number, serial number and namespace ID.
As a first step towards full support for the namespace GUID, nvme should use it to create a devid.
Updated by Joshua M. Clulow 16 days ago
That said, it would be good to confirm, during testing, a couple of cases:
- that a mirrored root pool is still bootable; unlike single-vdev root pools, changes in the devices path of disks in a complex pool (mirrors, raidz, etc) are not tolerated by the fix for #7119, but I believe devid-only changes should not impact boot under any circumstance
- that a non-boot pool (i.e., a second data pool other than the root pool) that is imported during boot via the cache file (i.e., it was not previously exported before reboot) survives across the change in devid as well
I think early boot ZFS pool things like that are probably the only things that end up using
/etc/devices/devid_cache in any vaguely load-bearing fashion.