diff options
author | mjacob <mjacob@FreeBSD.org> | 2001-07-11 02:34:21 +0000 |
---|---|---|
committer | mjacob <mjacob@FreeBSD.org> | 2001-07-11 02:34:21 +0000 |
commit | 0d42a4ee81d7081c6b0b32ccde9c7a4ec2b90f50 (patch) | |
tree | 2ef64f8eac3715b11f51a82eb21e0ff1e1343572 | |
parent | 5a98f880fa7bdb340bd788f1a14bb1b9a1327a0d (diff) | |
download | FreeBSD-src-0d42a4ee81d7081c6b0b32ccde9c7a4ec2b90f50.zip FreeBSD-src-0d42a4ee81d7081c6b0b32ccde9c7a4ec2b90f50.tar.gz |
Hmm. Let's try this on for size...
We originally had it such that if the connection topology was FL-loop
(public loop), we never looked at any local loop addresses. The reason
for not doing that was fear or concern that we'd see the same local
loop disks reflected from the name server and we'd attach them twice.
However, when I recently hooked up a JBOD and a system to an ANCOR SA-8
switch, the disks did *not* show up on the fabric. So at least the
ANCOR is screening those disks from appearing on the fabric. Now, it's
possible this is a 'feature' of the ANCOR. When I get a chance, I'll
check the Brocade (it's hard to do this on a low budget).
In any case, if they *do* also show up on the fabric, we should
simply elect to not log into them because we already have an
entry for the local loop. There is relatively unexercised code
just for this case.
MFC after: 2 weeks
-rw-r--r-- | sys/dev/isp/isp.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/sys/dev/isp/isp.c b/sys/dev/isp/isp.c index 7fefbc3..cbc20d5 100644 --- a/sys/dev/isp/isp.c +++ b/sys/dev/isp/isp.c @@ -2334,11 +2334,17 @@ isp_start(XS_T *xs) XS_SETERR(xs, HBA_SELTIMEOUT); return (CMD_COMPLETE); } - if (fcp->isp_topo != TOPO_F_PORT && - target < FL_PORT_ID) { - XS_SETERR(xs, HBA_SELTIMEOUT); - return (CMD_COMPLETE); - } + /* + * We used to exclude having local loop ports + * at the same time that we have fabric ports. + * That is, we used to exclude having ports + * at < FL_PORT_ID if we're FL-port. + * + * That's wrong. The only thing that could be + * dicey is if the switch you're connected to + * has these local loop ports appear on the + * fabric and we somehow attach them twice. + */ } #else /* |