mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
[SCSI] libfc: Pass lport in exch_mgr_reset
fc_exch_mgr structure is private to fc_exch.c. To export exch_mgr_reset to transport, transport needs access to the exch manager. Change exch_mgr_reset to use lport param which is the shared structure between libFC and transport. Alternatively, fc_exch_mgr definition can be moved to libfc.h so that lport can be accessed from mp*. Signed-off-by: Abhijeet Joglekar <abjoglek@cisco.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
33dd6f92a1
commit
1f6ff364ce
@ -1480,10 +1480,11 @@ static void fc_exch_reset(struct fc_exch *ep)
|
||||
* If sid is non-zero, reset only exchanges we source from that FID.
|
||||
* If did is non-zero, reset only exchanges destined to that FID.
|
||||
*/
|
||||
void fc_exch_mgr_reset(struct fc_exch_mgr *mp, u32 sid, u32 did)
|
||||
void fc_exch_mgr_reset(struct fc_lport *lp, u32 sid, u32 did)
|
||||
{
|
||||
struct fc_exch *ep;
|
||||
struct fc_exch *next;
|
||||
struct fc_exch_mgr *mp = lp->emp;
|
||||
|
||||
spin_lock_bh(&mp->em_lock);
|
||||
restart:
|
||||
|
@ -663,7 +663,7 @@ int fc_lport_destroy(struct fc_lport *lport)
|
||||
{
|
||||
lport->tt.frame_send = fc_frame_drop;
|
||||
lport->tt.fcp_abort_io(lport);
|
||||
lport->tt.exch_mgr_reset(lport->emp, 0, 0);
|
||||
lport->tt.exch_mgr_reset(lport, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(fc_lport_destroy);
|
||||
@ -973,7 +973,7 @@ static void fc_lport_enter_reset(struct fc_lport *lport)
|
||||
|
||||
lport->tt.disc_stop(lport);
|
||||
|
||||
lport->tt.exch_mgr_reset(lport->emp, 0, 0);
|
||||
lport->tt.exch_mgr_reset(lport, 0, 0);
|
||||
fc_host_fabric_name(lport->host) = 0;
|
||||
fc_host_port_id(lport->host) = 0;
|
||||
|
||||
|
@ -1285,7 +1285,7 @@ void fc_rport_terminate_io(struct fc_rport *rport)
|
||||
struct fc_rport_libfc_priv *rdata = rport->dd_data;
|
||||
struct fc_lport *lport = rdata->local_port;
|
||||
|
||||
lport->tt.exch_mgr_reset(lport->emp, 0, rport->port_id);
|
||||
lport->tt.exch_mgr_reset(lport->emp, rport->port_id, 0);
|
||||
lport->tt.exch_mgr_reset(lport, 0, rport->port_id);
|
||||
lport->tt.exch_mgr_reset(lport, rport->port_id, 0);
|
||||
}
|
||||
EXPORT_SYMBOL(fc_rport_terminate_io);
|
||||
|
@ -472,7 +472,7 @@ struct libfc_function_template {
|
||||
* If s_id is non-zero, reset only exchanges originating from that FID.
|
||||
* If d_id is non-zero, reset only exchanges sending to that FID.
|
||||
*/
|
||||
void (*exch_mgr_reset)(struct fc_exch_mgr *,
|
||||
void (*exch_mgr_reset)(struct fc_lport *,
|
||||
u32 s_id, u32 d_id);
|
||||
|
||||
void (*rport_flush_queue)(void);
|
||||
@ -916,7 +916,7 @@ struct fc_seq *fc_seq_start_next(struct fc_seq *sp);
|
||||
* If s_id is non-zero, reset only exchanges originating from that FID.
|
||||
* If d_id is non-zero, reset only exchanges sending to that FID.
|
||||
*/
|
||||
void fc_exch_mgr_reset(struct fc_exch_mgr *, u32 s_id, u32 d_id);
|
||||
void fc_exch_mgr_reset(struct fc_lport *, u32 s_id, u32 d_id);
|
||||
|
||||
/*
|
||||
* Functions for fc_functions_template
|
||||
|
Loading…
Reference in New Issue
Block a user