https://bugzilla.redhat.com/show_bug.cgi?id=
1172015
The refactoring done as part of commit id '
59446096' caused a regression
for the multi initiator IQN commit '
6aabcb5b' because the sendtargets was
not done on/for the initiator IQN prior to login (or trying to disable
autologin)
Prior to that commit, the paths were essentially
virStorageBackendISCSIStartPool
virStorageBackendISCSILogin
virStorageBackendISCSIConnection
if initiatoriqn
virStorageBackendCreateIfaceIQN
Issue sendtargets
Perform --login
else
Issue sendtargets
Perform --login
After that commit:
virStorageBackendISCSIStartPool
Issue sendtargets
Call virStorageBackendISCSIConnection
If initiatoriqn
virStorageBackendCreateIfaceIQN
Perform --login
else
Perform --login
So for non initiator IQN paths, nothing changed. For the initiator path,
the --login fails as does any attempts to change autologin via "--op update
--name node.startup --value manual".
VIR_DEBUG("ifacename: '%s'", ifacename);
break;
case IQN_MISSING:
- if (virStorageBackendCreateIfaceIQN(initiatoriqn,
- &ifacename) != 0) {
+ if (virStorageBackendCreateIfaceIQN(initiatoriqn, &ifacename) != 0)
goto cleanup;
- }
+ /*
+ * iscsiadm doesn't let you send commands to the Interface IQN,
+ * unless you've first issued a 'sendtargets' command to the
+ * portal. Without the sendtargets all that is received is a
+ * "iscsiadm: No records found"
+ */
+ if (virISCSIScanTargets(portal, initiatoriqn, NULL, NULL) < 0)
+ goto cleanup;
+
break;
case IQN_ERROR:
default: