When HBA kernel modules are loaded while libvirt is running, libvirt
will often read bogus WWNs from sysfs as at least some modules trigger
the HAL event notifying libvirt of adapters' existence before the
sysfs info is correct. The following patch causes libvirt to reread
the WWNs whenever dumpxml is called so the capability information
about the WWNs will be up to date.
I pulled the logic to read the WWNs into two separate functions, and
the patch is slightly more invasive as a result. The resulting code
is smaller and cleaner for it, though, so I think this is the right
way to go. (The diff is also very ugly; it should make sense once
applied.)
Dave