[SCSI] libfc: send point-to-poin FLOGI LS_ACC to assigned D_DID
authorJoe Eykholt <jeykholt@cisco.com>
Sat, 13 Mar 2010 00:08:12 +0000 (16:08 -0800)
committerJames Bottomley <James.Bottomley@suse.de>
Sun, 11 Apr 2010 14:23:37 +0000 (09:23 -0500)
The method we've been using for point-to-point mode requires
that the LS_ACC for the FLOGI uses the D_ID and S_ID assigned
to the remote port and local port, not those in the exchange.

This is not the correct method, but for now, it's what works
with the old target, as well as with new targets based on libfc.

This patch changes the addresses used accordingly.

Signed-off-by: Joe Eykholt <jeykholt@cisco.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/libfc/fc_lport.c

index fe8700f..a6cf94d 100644 (file)
@@ -835,7 +835,7 @@ static void fc_lport_recv_flogi_req(struct fc_seq *sp_in,
                 */
                f_ctl = FC_FC_EX_CTX | FC_FC_LAST_SEQ | FC_FC_END_SEQ;
                ep = fc_seq_exch(sp);
-               fc_fill_fc_hdr(fp, FC_RCTL_ELS_REP, ep->did, ep->sid,
+               fc_fill_fc_hdr(fp, FC_RCTL_ELS_REP, remote_fid, local_fid,
                               FC_TYPE_ELS, f_ctl, 0);
                lport->tt.seq_send(lport, sp, fp);