Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
libfc.h File Reference
#include <linux/timer.h>
#include <linux/if.h>
#include <linux/percpu.h>
#include <scsi/scsi_transport.h>
#include <scsi/scsi_transport_fc.h>
#include <scsi/scsi_bsg_fc.h>
#include <scsi/fc/fc_fcp.h>
#include <scsi/fc/fc_ns.h>
#include <scsi/fc/fc_ms.h>
#include <scsi/fc/fc_els.h>
#include <scsi/fc/fc_gs.h>
#include <scsi/fc_frame.h>

Go to the source code of this file.

Data Structures

struct  fc_disc_port
 
struct  fc_rport_operations
 
struct  fc_rport_libfc_priv
 
struct  fc_rport_priv
 
struct  fc_stats
 
struct  fc_seq_els_data
 
struct  fc_fcp_pkt
 
struct  fc_seq
 
struct  fc_exch
 
struct  libfc_function_template
 
struct  fc_disc
 
struct  fc_lport
 
struct  fc4_prov
 

Macros

#define FC_FC4_PROV_SIZE   (FC_TYPE_FCP + 1) /* size of tables */
 
#define FC_NO_ERR   0 /* no error */
 
#define FC_EX_TIMEOUT   1 /* Exchange timeout */
 
#define FC_EX_CLOSED   2 /* Exchange closed */
 
#define FC_RP_FLAGS_REC_SUPPORTED   (1 << 0)
 
#define FC_RP_FLAGS_RETRY   (1 << 1)
 
#define FC_RP_STARTED   (1 << 2)
 
#define FC_RP_FLAGS_CONF_REQ   (1 << 3)
 
#define FC_EX_DONE   (1 << 0) /* ep is completed */
 
#define FC_EX_RST_CLEANUP   (1 << 1) /* reset is forcing completion */
 
#define fc_seq_exch(sp)   container_of(sp, struct fc_exch, seq)
 

Enumerations

enum  fc_lport_state {
  LPORT_ST_DISABLED = 0, LPORT_ST_FLOGI, LPORT_ST_DNS, LPORT_ST_RNN_ID,
  LPORT_ST_RSNN_NN, LPORT_ST_RSPN_ID, LPORT_ST_RFT_ID, LPORT_ST_RFF_ID,
  LPORT_ST_FDMI, LPORT_ST_RHBA, LPORT_ST_RPA, LPORT_ST_DHBA,
  LPORT_ST_DPRT, LPORT_ST_SCR, LPORT_ST_READY, LPORT_ST_LOGO,
  LPORT_ST_RESET
}
 
enum  fc_disc_event { DISC_EV_NONE = 0, DISC_EV_SUCCESS, DISC_EV_FAILED }
 
enum  fc_rport_state {
  RPORT_ST_INIT, RPORT_ST_FLOGI, RPORT_ST_PLOGI_WAIT, RPORT_ST_PLOGI,
  RPORT_ST_PRLI, RPORT_ST_RTV, RPORT_ST_READY, RPORT_ST_ADISC,
  RPORT_ST_DELETE
}
 
enum  fc_rport_event {
  RPORT_EV_NONE = 0, RPORT_EV_READY, RPORT_EV_FAILED, RPORT_EV_STOP,
  RPORT_EV_LOGO
}
 
enum  fc_lport_event { FC_LPORT_EV_ADD, FC_LPORT_EV_DEL }
 

Functions

int fc_fc4_register_provider (enum fc_fh_type type, struct fc4_prov *)
 
void fc_fc4_deregister_provider (enum fc_fh_type type, struct fc4_prov *)
 
int fc_lport_init (struct fc_lport *)
 
int fc_lport_destroy (struct fc_lport *)
 
int fc_fabric_logoff (struct fc_lport *)
 
int fc_fabric_login (struct fc_lport *)
 
void __fc_linkup (struct fc_lport *)
 
void fc_linkup (struct fc_lport *)
 
void __fc_linkdown (struct fc_lport *)
 
void fc_linkdown (struct fc_lport *)
 
void fc_vport_setlink (struct fc_lport *)
 
void fc_vports_linkchange (struct fc_lport *)
 
int fc_lport_config (struct fc_lport *)
 
int fc_lport_reset (struct fc_lport *)
 
int fc_set_mfs (struct fc_lport *, u32 mfs)
 
struct fc_lportlibfc_vport_create (struct fc_vport *, int privsize)
 
struct fc_lportfc_vport_id_lookup (struct fc_lport *, u32 port_id)
 
int fc_lport_bsg_request (struct fc_bsg_job *)
 
void fc_lport_set_local_id (struct fc_lport *, u32 port_id)
 
void fc_lport_iterate (void(*func)(struct fc_lport *, void *), void *)
 
int fc_rport_init (struct fc_lport *)
 
void fc_rport_terminate_io (struct fc_rport *)
 
int fc_disc_init (struct fc_lport *)
 
int fc_fcp_init (struct fc_lport *)
 
void fc_fcp_destroy (struct fc_lport *)
 
int fc_queuecommand (struct Scsi_Host *, struct scsi_cmnd *)
 
int fc_eh_abort (struct scsi_cmnd *)
 
int fc_eh_device_reset (struct scsi_cmnd *)
 
int fc_eh_host_reset (struct scsi_cmnd *)
 
int fc_slave_alloc (struct scsi_device *)
 
int fc_change_queue_depth (struct scsi_device *, int qdepth, int reason)
 
int fc_change_queue_type (struct scsi_device *, int tag_type)
 
int fc_elsct_init (struct fc_lport *)
 
struct fc_seqfc_elsct_send (struct fc_lport *, u32 did, struct fc_frame *, unsigned int op, void(*resp)(struct fc_seq *, struct fc_frame *, void *arg), void *arg, u32 timer_msec)
 
void fc_lport_flogi_resp (struct fc_seq *, struct fc_frame *, void *)
 
void fc_lport_logo_resp (struct fc_seq *, struct fc_frame *, void *)
 
void fc_fill_reply_hdr (struct fc_frame *, const struct fc_frame *, enum fc_rctl, u32 parm_offset)
 
void fc_fill_hdr (struct fc_frame *, const struct fc_frame *, enum fc_rctl, u32 f_ctl, u16 seq_cnt, u32 parm_offset)
 
int fc_exch_init (struct fc_lport *)
 
void fc_exch_update_stats (struct fc_lport *lport)
 
struct fc_exch_mgr_anchorfc_exch_mgr_add (struct fc_lport *, struct fc_exch_mgr *, bool(*match)(struct fc_frame *))
 
void fc_exch_mgr_del (struct fc_exch_mgr_anchor *)
 
int fc_exch_mgr_list_clone (struct fc_lport *src, struct fc_lport *dst)
 
struct fc_exch_mgrfc_exch_mgr_alloc (struct fc_lport *, enum fc_class class, u16 min_xid, u16 max_xid, bool(*match)(struct fc_frame *))
 
void fc_exch_mgr_free (struct fc_lport *)
 
void fc_exch_recv (struct fc_lport *, struct fc_frame *)
 
void fc_exch_mgr_reset (struct fc_lport *, u32 s_id, u32 d_id)
 
void fc_get_host_speed (struct Scsi_Host *)
 
void fc_get_host_port_state (struct Scsi_Host *)
 
void fc_set_rport_loss_tmo (struct fc_rport *, u32 timeout)
 
struct fc_host_statisticsfc_get_host_stats (struct Scsi_Host *)
 

Variables

struct fc_fcp_pkt ____cacheline_aligned_in_smp
 
u16 fc_cpu_mask
 
struct blocking_notifier_head fc_lport_notifier_head
 

Macro Definition Documentation

#define FC_EX_CLOSED   2 /* Exchange closed */

Definition at line 46 of file libfc.h.

#define FC_EX_DONE   (1 << 0) /* ep is completed */

Definition at line 386 of file libfc.h.

#define FC_EX_RST_CLEANUP   (1 << 1) /* reset is forcing completion */

Definition at line 387 of file libfc.h.

#define FC_EX_TIMEOUT   1 /* Exchange timeout */

Definition at line 45 of file libfc.h.

#define FC_FC4_PROV_SIZE   (FC_TYPE_FCP + 1) /* size of tables */

Definition at line 39 of file libfc.h.

#define FC_NO_ERR   0 /* no error */

Definition at line 44 of file libfc.h.

#define FC_RP_FLAGS_CONF_REQ   (1 << 3)

Definition at line 169 of file libfc.h.

#define FC_RP_FLAGS_REC_SUPPORTED   (1 << 0)

Definition at line 166 of file libfc.h.

#define FC_RP_FLAGS_RETRY   (1 << 1)

Definition at line 167 of file libfc.h.

#define FC_RP_STARTED   (1 << 2)

Definition at line 168 of file libfc.h.

#define fc_seq_exch (   sp)    container_of(sp, struct fc_exch, seq)

Definition at line 449 of file libfc.h.

Enumeration Type Documentation

Enumerator:
DISC_EV_NONE 
DISC_EV_SUCCESS 
DISC_EV_FAILED 

Definition at line 83 of file libfc.h.

Enumerator:
FC_LPORT_EV_ADD 
FC_LPORT_EV_DEL 

Definition at line 804 of file libfc.h.

enum fc_lport_state - Local port states : Disabled : Fabric login (FLOGI) sent : Waiting for name server remote port to become ready : Register port name by ID (RPN_ID) sent : Register Fibre Channel types by ID (RFT_ID) sent : Register FC-4 Features by ID (RFF_ID) sent : Waiting for mgmt server rport to become ready : : State Change Register (SCR) sent : Ready for use : Local port logout (LOGO) sent : Local port reset

Enumerator:
LPORT_ST_DISABLED 
LPORT_ST_FLOGI 
LPORT_ST_DNS 
LPORT_ST_RNN_ID 
LPORT_ST_RSNN_NN 
LPORT_ST_RSPN_ID 
LPORT_ST_RFT_ID 
LPORT_ST_RFF_ID 
LPORT_ST_FDMI 
LPORT_ST_RHBA 
LPORT_ST_RPA 
LPORT_ST_DHBA 
LPORT_ST_DPRT 
LPORT_ST_SCR 
LPORT_ST_READY 
LPORT_ST_LOGO 
LPORT_ST_RESET 

Definition at line 63 of file libfc.h.

enum fc_rport_event - Remote port events : No event : Remote port is ready for use : State machine failed, remote port is not ready : Remote port has been stopped : Remote port logout (LOGO) sent

Enumerator:
RPORT_EV_NONE 
RPORT_EV_READY 
RPORT_EV_FAILED 
RPORT_EV_STOP 
RPORT_EV_LOGO 

Definition at line 135 of file libfc.h.

enum fc_rport_state - Remote port states : Initialized : Waiting for FLOGI completion for point-to-multipoint : Waiting for peer to login for point-to-multipoint : Waiting for PLOGI completion : Waiting for PRLI completion : Waiting for RTV completion : Ready for use : Discover Address sent : Remote port being deleted

Enumerator:
RPORT_ST_INIT 
RPORT_ST_FLOGI 
RPORT_ST_PLOGI_WAIT 
RPORT_ST_PLOGI 
RPORT_ST_PRLI 
RPORT_ST_RTV 
RPORT_ST_READY 
RPORT_ST_ADISC 
RPORT_ST_DELETE 

Definition at line 101 of file libfc.h.

Function Documentation

void __fc_linkdown ( struct fc_lport lport)

__fc_linkdown() - Handler for transport linkdown events : The lport whose link is down

Locking: must be called with the lp_mutex held

Definition at line 590 of file fc_lport.c.

void __fc_linkup ( struct fc_lport lport)

__fc_linkup() - Handler for transport linkup events : The lport whose link is up

Locking: must be called with the lp_mutex held

Definition at line 559 of file fc_lport.c.

int fc_change_queue_depth ( struct scsi_device sdev,
int  qdepth,
int  reason 
)

fc_change_queue_depth() - Change a device's queue depth : The SCSI device whose queue depth is to change : The new queue depth : The resason for the change

Definition at line 2179 of file fc_fcp.c.

int fc_change_queue_type ( struct scsi_device sdev,
int  tag_type 
)

fc_change_queue_type() - Change a device's queue type : The SCSI device whose queue depth is to change : Identifier for queue type

Definition at line 2203 of file fc_fcp.c.

int fc_disc_init ( struct fc_lport lport)

fc_disc_init() - Initialize the discovery layer for a local port : The local port that needs the discovery layer to be initialized

Definition at line 718 of file fc_disc.c.

int fc_eh_abort ( struct scsi_cmnd sc_cmd)

fc_eh_abort() - Abort a command : The SCSI command to abort

From SCSI host template. Send an ABTS to the target device and wait for the response.

Definition at line 2019 of file fc_fcp.c.

int fc_eh_device_reset ( struct scsi_cmnd sc_cmd)

fc_eh_device_reset() - Reset a single LUN : The SCSI command which identifies the device whose LUN is to be reset

Set from SCSI host template.

Definition at line 2072 of file fc_fcp.c.

int fc_eh_host_reset ( struct scsi_cmnd sc_cmd)

fc_eh_host_reset() - Reset a Scsi_Host. : The SCSI command that identifies the SCSI host to be reset

Definition at line 2120 of file fc_fcp.c.

int fc_elsct_init ( struct fc_lport lport)

fc_elsct_init() - Initialize the ELS/CT layer : The local port to initialize the ELS/CT layer for

Definition at line 78 of file fc_elsct.c.

struct fc_seq* fc_elsct_send ( struct fc_lport ,
u32  did,
struct fc_frame ,
unsigned int  op,
void(*)(struct fc_seq *, struct fc_frame *, void *arg resp,
void arg,
u32  timer_msec 
)
read
int fc_exch_init ( struct fc_lport lport)

fc_exch_init() - Initialize the exchange layer for a local port : The local port to initialize the exchange layer for

Definition at line 2465 of file fc_exch.c.

struct fc_exch_mgr_anchor* fc_exch_mgr_add ( struct fc_lport lport,
struct fc_exch_mgr mp,
bool(*)(struct fc_frame *)  match 
)
read

fc_exch_mgr_add() - Add an exchange manager to a local port's list of EMs : The local port to add the exchange manager to : The exchange manager to be added to the local port : The match routine that indicates when this EM should be used

Definition at line 2194 of file fc_exch.c.

struct fc_exch_mgr* fc_exch_mgr_alloc ( struct fc_lport ,
enum fc_class  class,
u16  min_xid,
u16  max_xid,
bool(*)(struct fc_frame *)  match 
)
read

Definition at line 2268 of file fc_exch.c.

void fc_exch_mgr_del ( struct fc_exch_mgr_anchor ema)

fc_exch_mgr_del() - Delete an EM from a local port's list : The exchange manager anchor identifying the EM to be deleted

Definition at line 2230 of file fc_exch.c.

void fc_exch_mgr_free ( struct fc_lport lport)

fc_exch_mgr_free() - Free all exchange managers on a local port : The local port whose EMs are to be freed

Definition at line 2362 of file fc_exch.c.

int fc_exch_mgr_list_clone ( struct fc_lport src,
struct fc_lport dst 
)

fc_exch_mgr_list_clone() - Share all exchange manager objects : Source lport to clone exchange managers from : New lport that takes references to all the exchange managers

Definition at line 2244 of file fc_exch.c.

void fc_exch_mgr_reset ( struct fc_lport lport,
u32  sid,
u32  did 
)

fc_exch_mgr_reset() - Reset all EMs of a local port : The local port whose EMs are to be reset : The source ID : The destination ID

Reset all EMs associated with a given local port. Release all sequences and exchanges. If sid is non-zero then reset only the exchanges sent from the local port's FID. If did is non-zero then reset only exchanges destined for the local port's FID.

Definition at line 1822 of file fc_exch.c.

void fc_exch_recv ( struct fc_lport lport,
struct fc_frame fp 
)

fc_exch_recv() - Handler for received frames : The local port the frame was received on : The received frame

Definition at line 2407 of file fc_exch.c.

void fc_exch_update_stats ( struct fc_lport lport)

fc_exch_update_stats() - update exches stats to lport : The local port to update exchange manager stats

Definition at line 2167 of file fc_exch.c.

int fc_fabric_login ( struct fc_lport lport)

fc_fabric_login() - Start the lport state machine : The local port that should log into the fabric

Locking Note: This function should not be called with the lport lock held.

Definition at line 536 of file fc_lport.c.

int fc_fabric_logoff ( struct fc_lport lport)

fc_fabric_logoff() - Logout of the fabric : The local port to logoff the fabric

Return value: 0 for success, -1 for failure

Definition at line 621 of file fc_lport.c.

void fc_fc4_deregister_provider ( enum fc_fh_type  type,
struct fc4_prov prov 
)

fc_fc4_deregister_provider() - deregister FC-4 upper-level provider. : FC-4 type, such as FC_TYPE_FCP : structure describing provider including ops vector.

Definition at line 294 of file fc_libfc.c.

int fc_fc4_register_provider ( enum fc_fh_type  type,
struct fc4_prov prov 
)

fc_fc4_register_provider() - register FC-4 upper-level provider. : FC-4 type, such as FC_TYPE_FCP : structure describing provider including ops vector.

Returns 0 on success, negative error otherwise.

Definition at line 271 of file fc_libfc.c.

void fc_fcp_destroy ( struct fc_lport lport)

fc_fcp_destory() - Tear down the FCP layer for a given local port : The local port that no longer needs the FCP layer

Definition at line 2222 of file fc_fcp.c.

int fc_fcp_init ( struct fc_lport lport)

fc_fcp_init() - Initialize the FCP layer for a local port : The local port to initialize the exchange layer for

Definition at line 2262 of file fc_fcp.c.

void fc_fill_hdr ( struct fc_frame fp,
const struct fc_frame in_fp,
enum fc_rctl  r_ctl,
u32  f_ctl,
u16  seq_cnt,
u32  parm_offset 
)

fc_fill_hdr() - fill FC header fields based on request : reply frame containing header to be filled in : request frame containing header to use in filling in reply : R_CTL value for header : F_CTL value for header, with 0 pad : sequence count for the header, ignored if frame has a sequence : parameter / offset value

Definition at line 166 of file fc_libfc.c.

void fc_fill_reply_hdr ( struct fc_frame fp,
const struct fc_frame in_fp,
enum fc_rctl  r_ctl,
u32  parm_offset 
)

fc_fill_reply_hdr() - fill FC reply header fields based on request : reply frame containing header to be filled in : request frame containing header to use in filling in reply : R_CTL value for reply : parameter / offset value

Definition at line 222 of file fc_libfc.c.

void fc_get_host_port_state ( struct Scsi_Host shost)

fc_get_host_port_state() - Return the port state of the given Scsi_Host : The SCSI host whose port state is to be determined

Definition at line 265 of file fc_lport.c.

void fc_get_host_speed ( struct Scsi_Host shost)

fc_get_host_speed() - Return the speed of the given Scsi_Host : The SCSI host whose port speed is to be determined

Definition at line 288 of file fc_lport.c.

struct fc_host_statistics* fc_get_host_stats ( struct Scsi_Host shost)
read

fc_get_host_stats() - Return the Scsi_Host's statistics : The SCSI host whose statistics are to be returned

Definition at line 300 of file fc_lport.c.

void fc_linkdown ( struct fc_lport lport)

fc_linkdown() - Handler for transport linkdown events : The local port whose link is down

Definition at line 603 of file fc_lport.c.

void fc_linkup ( struct fc_lport lport)

fc_linkup() - Handler for transport linkup events : The local port whose link is up

Definition at line 573 of file fc_lport.c.

int fc_lport_bsg_request ( struct fc_bsg_job job)

fc_lport_bsg_request() - The common entry point for sending FC Passthrough requests : The BSG passthrough job

Definition at line 2085 of file fc_lport.c.

int fc_lport_config ( struct fc_lport lport)

fc_lport_config() - Configure a fc_lport : The local port to be configured

Definition at line 1843 of file fc_lport.c.

int fc_lport_destroy ( struct fc_lport lport)

fc_lport_destroy() - Unregister a fc_lport : The local port to unregister

Note: exit routine for fc_lport instance clean-up all the allocated memory and free up other system resources.

Definition at line 647 of file fc_lport.c.

void fc_lport_flogi_resp ( struct fc_seq sp,
struct fc_frame fp,
void lp_arg 
)

fc_lport_flogi_resp() - Handle response to FLOGI request : The sequence that the FLOGI was on : The FLOGI response frame : The lport port that received the FLOGI response

Locking Note: This function will be called without the lport lock held, but it will lock, call an enter* function or fc_lport_error() and then unlock the lport.

Definition at line 1704 of file fc_lport.c.

int fc_lport_init ( struct fc_lport lport)

fc_lport_init() - Initialize the lport layer for a local port : The local port to initialize the exchange layer for

Definition at line 1862 of file fc_lport.c.

void fc_lport_iterate ( void(*)(struct fc_lport *, void *)  func,
void  
)

Definition at line 253 of file fc_libfc.c.

void fc_lport_logo_resp ( struct fc_seq sp,
struct fc_frame fp,
void lp_arg 
)

fc_lport_logo_resp() - Handle response to LOGO request : The sequence that the LOGO was on : The LOGO frame : The lport port that received the LOGO request

Locking Note: This function will be called without the lport lock held, but it will lock, call an enter* function or fc_lport_error() and then unlock the lport.

Definition at line 1625 of file fc_lport.c.

int fc_lport_reset ( struct fc_lport lport)

fc_lport_reset() - Reset a local port : The local port which should be reset

Locking Note: This functions should not be called with the lport lock held.

Definition at line 994 of file fc_lport.c.

void fc_lport_set_local_id ( struct fc_lport lport,
u32  port_id 
)

fc_lport_set_port_id() - set the local port Port ID for point-to-multipoint : The local port which will have its Port ID set. : The new port ID.

Called by the lower-level driver when transport sets the local port_id. This is used in VN_port to VN_port mode for FCoE, and causes FLOGI and discovery to be skipped.

Definition at line 777 of file fc_lport.c.

int fc_queuecommand ( struct Scsi_Host shost,
struct scsi_cmnd sc_cmd 
)

fc_queuecommand() - The queuecommand function of the SCSI template : The Scsi_Host that the command was issued to : The scsi_cmnd to be executed

This is the i/o strategy routine, called by the SCSI layer.

Definition at line 1790 of file fc_fcp.c.

int fc_rport_init ( struct fc_lport lport)

fc_rport_init() - Initialize the remote port layer for a local port : The local port to initialize the remote port layer for

Definition at line 1911 of file fc_rport.c.

void fc_rport_terminate_io ( struct fc_rport rport)

fc_rport_terminate_io() - Stop all outstanding I/O on a remote port : The remote port whose I/O should be terminated

Definition at line 2034 of file fc_rport.c.

int fc_set_mfs ( struct fc_lport lport,
u32  mfs 
)

fc_set_mfs() - Set the maximum frame size for a local port : The local port to set the MFS for : The new MFS

Definition at line 669 of file fc_lport.c.

void fc_set_rport_loss_tmo ( struct fc_rport rport,
u32  timeout 
)

fc_set_rport_loss_tmo() - Set the remote port loss timeout : The remote port that gets a new timeout value : The new timeout value (in seconds)

Definition at line 187 of file fc_rport.c.

int fc_slave_alloc ( struct scsi_device sdev)

fc_slave_alloc() - Configure the queue depth of a Scsi_Host : The SCSI device that identifies the SCSI host

Configures queue depth based on host's cmd_per_len. If not set then we use the libfc default.

Definition at line 2156 of file fc_fcp.c.

struct fc_lport* fc_vport_id_lookup ( struct fc_lport n_port,
u32  port_id 
)
read

fc_vport_id_lookup() - find NPIV lport that matches a given fabric ID : Top level N_Port which may have multiple NPIV VN_Ports : Fabric ID to find a match for

Returns: matching lport pointer or NULL if there is no match

Definition at line 61 of file fc_npiv.c.

void fc_vport_setlink ( struct fc_lport vn_port)

fc_vport_setlink() - update link and status on a VN_Port : virtual port to update

Definition at line 129 of file fc_npiv.c.

void fc_vports_linkchange ( struct fc_lport n_port)

fc_vports_linkchange() - change the link state of all vports : Parent N_Port that has changed state

Locking: called with the n_port lp_mutex held

Definition at line 149 of file fc_npiv.c.

struct fc_lport* libfc_vport_create ( struct fc_vport vport,
int  privsize 
)
read

fc_vport_create() - Create a new NPIV vport instance : fc_vport structure from scsi_transport_fc : driver private data size to allocate along with the Scsi_Host

Definition at line 33 of file fc_npiv.c.

Variable Documentation

struct fc_exch ____cacheline_aligned_in_smp
u16 fc_cpu_mask

Definition at line 38 of file fc_exch.c.

struct blocking_notifier_head fc_lport_notifier_head

Definition at line 41 of file fc_libfc.c.