iscsi initiator gets confused if attached before root file system mount
The iSCSI initiator loads some data from the "persistent store"; i.e., state files stored on the root file system. It is theoretically possible to boot from an iSCSI device as well, so the initiator is willing to defer loading from the store if we are attempting an iSCSI boot.
The logic for deferring load of the persistent store is not quite right -- if we are not booting from iSCSI but the module is attached before root is mounted, the module gets stuck in a broken state. Historically this has been unlikely to occur, as drivers are usually not attached en masse until after the root file system is mounted. As part of fixing #7119, under some conditions we may load and attach all modules as part of attempting to locate a new
/devices path for the root ZFS pool. This happens prior to mounting root and causes the iSCSI module to get stuck.