MFC r273164:

When removing an iSCSI session, check whether all conditions match,
not if any of them matches.  This fixes "iscsictl -Rn" removing
unrelated sessions.

PR:		194034
Sponsored by:	The FreeBSD Foundation
This commit is contained in:
trasz 2014-11-15 05:50:14 +00:00
parent c1b4b35c7e
commit 93accf3999

View File

@ -1757,18 +1757,16 @@ static bool
iscsi_session_conf_matches(unsigned int id1, const struct iscsi_session_conf *c1,
unsigned int id2, const struct iscsi_session_conf *c2)
{
if (id2 == 0 && c2->isc_target[0] == '\0' &&
c2->isc_target_addr[0] == '\0')
return (true);
if (id2 != 0 && id2 == id1)
return (true);
if (id2 != 0 && id2 != id1)
return (false);
if (c2->isc_target[0] != '\0' &&
strcmp(c1->isc_target, c2->isc_target) == 0)
return (true);
strcmp(c1->isc_target, c2->isc_target) != 0)
return (false);
if (c2->isc_target_addr[0] != '\0' &&
strcmp(c1->isc_target_addr, c2->isc_target_addr) == 0)
return (true);
return (false);
strcmp(c1->isc_target_addr, c2->isc_target_addr) != 0)
return (false);
return (true);
}
static int