Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions | Variables
zfcp_ext.h File Reference
#include <linux/types.h>
#include <scsi/fc/fc_els.h>
#include "zfcp_def.h"
#include "zfcp_fc.h"

Go to the source code of this file.

Functions

struct zfcp_portzfcp_get_port_by_wwpn (struct zfcp_adapter *, u64)
 
struct zfcp_adapterzfcp_adapter_enqueue (struct ccw_device *)
 
struct zfcp_portzfcp_port_enqueue (struct zfcp_adapter *, u64, u32, u32)
 
void zfcp_sg_free_table (struct scatterlist *, int)
 
int zfcp_sg_setup_table (struct scatterlist *, int)
 
void zfcp_device_unregister (struct device *, const struct attribute_group *)
 
void zfcp_adapter_release (struct kref *)
 
void zfcp_adapter_unregister (struct zfcp_adapter *)
 
int zfcp_ccw_priv_sch (struct zfcp_adapter *)
 
struct zfcp_adapterzfcp_ccw_adapter_by_cdev (struct ccw_device *)
 
void zfcp_ccw_adapter_put (struct zfcp_adapter *)
 
void zfcp_cfdc_port_denied (struct zfcp_port *, union fsf_status_qual *)
 
void zfcp_cfdc_lun_denied (struct scsi_device *, union fsf_status_qual *)
 
void zfcp_cfdc_lun_shrng_vltn (struct scsi_device *, union fsf_status_qual *)
 
int zfcp_cfdc_open_lun_eval (struct scsi_device *, struct fsf_qtcb_bottom_support *)
 
void zfcp_cfdc_adapter_access_changed (struct zfcp_adapter *)
 
int zfcp_dbf_adapter_register (struct zfcp_adapter *)
 
void zfcp_dbf_adapter_unregister (struct zfcp_adapter *)
 
void zfcp_dbf_rec_trig (char *, struct zfcp_adapter *, struct zfcp_port *, struct scsi_device *, u8, u8)
 
void zfcp_dbf_rec_run (char *, struct zfcp_erp_action *)
 
void zfcp_dbf_hba_fsf_uss (char *, struct zfcp_fsf_req *)
 
void zfcp_dbf_hba_fsf_res (char *, struct zfcp_fsf_req *)
 
void zfcp_dbf_hba_bit_err (char *, struct zfcp_fsf_req *)
 
void zfcp_dbf_hba_berr (struct zfcp_dbf *, struct zfcp_fsf_req *)
 
void zfcp_dbf_hba_def_err (struct zfcp_adapter *, u64, u16, void **)
 
void zfcp_dbf_hba_basic (char *, struct zfcp_adapter *)
 
void zfcp_dbf_san_req (char *, struct zfcp_fsf_req *, u32)
 
void zfcp_dbf_san_res (char *, struct zfcp_fsf_req *)
 
void zfcp_dbf_san_in_els (char *, struct zfcp_fsf_req *)
 
void zfcp_dbf_scsi (char *, struct scsi_cmnd *, struct zfcp_fsf_req *)
 
void zfcp_erp_set_adapter_status (struct zfcp_adapter *, u32)
 
void zfcp_erp_clear_adapter_status (struct zfcp_adapter *, u32)
 
void zfcp_erp_adapter_reopen (struct zfcp_adapter *, int, char *)
 
void zfcp_erp_adapter_shutdown (struct zfcp_adapter *, int, char *)
 
void zfcp_erp_set_port_status (struct zfcp_port *, u32)
 
void zfcp_erp_clear_port_status (struct zfcp_port *, u32)
 
int zfcp_erp_port_reopen (struct zfcp_port *, int, char *)
 
void zfcp_erp_port_shutdown (struct zfcp_port *, int, char *)
 
void zfcp_erp_port_forced_reopen (struct zfcp_port *, int, char *)
 
void zfcp_erp_set_lun_status (struct scsi_device *, u32)
 
void zfcp_erp_clear_lun_status (struct scsi_device *, u32)
 
void zfcp_erp_lun_reopen (struct scsi_device *, int, char *)
 
void zfcp_erp_lun_shutdown (struct scsi_device *, int, char *)
 
void zfcp_erp_lun_shutdown_wait (struct scsi_device *, char *)
 
int zfcp_erp_thread_setup (struct zfcp_adapter *)
 
void zfcp_erp_thread_kill (struct zfcp_adapter *)
 
void zfcp_erp_wait (struct zfcp_adapter *)
 
void zfcp_erp_notify (struct zfcp_erp_action *, unsigned long)
 
void zfcp_erp_timeout_handler (unsigned long)
 
void zfcp_fc_enqueue_event (struct zfcp_adapter *, enum fc_host_event_code event_code, u32)
 
void zfcp_fc_post_event (struct work_struct *)
 
void zfcp_fc_scan_ports (struct work_struct *)
 
void zfcp_fc_incoming_els (struct zfcp_fsf_req *)
 
void zfcp_fc_port_did_lookup (struct work_struct *)
 
void zfcp_fc_trigger_did_lookup (struct zfcp_port *)
 
void zfcp_fc_plogi_evaluate (struct zfcp_port *, struct fc_els_flogi *)
 
void zfcp_fc_test_link (struct zfcp_port *)
 
void zfcp_fc_link_test_work (struct work_struct *)
 
void zfcp_fc_wka_ports_force_offline (struct zfcp_fc_wka_ports *)
 
int zfcp_fc_gs_setup (struct zfcp_adapter *)
 
void zfcp_fc_gs_destroy (struct zfcp_adapter *)
 
int zfcp_fc_exec_bsg_job (struct fc_bsg_job *)
 
int zfcp_fc_timeout_bsg_job (struct fc_bsg_job *)
 
void zfcp_fc_sym_name_update (struct work_struct *)
 
void zfcp_fc_conditional_port_scan (struct zfcp_adapter *)
 
void zfcp_fc_inverse_conditional_port_scan (struct zfcp_adapter *)
 
int zfcp_fsf_open_port (struct zfcp_erp_action *)
 
int zfcp_fsf_open_wka_port (struct zfcp_fc_wka_port *)
 
int zfcp_fsf_close_wka_port (struct zfcp_fc_wka_port *)
 
int zfcp_fsf_close_port (struct zfcp_erp_action *)
 
int zfcp_fsf_close_physical_port (struct zfcp_erp_action *)
 
int zfcp_fsf_open_lun (struct zfcp_erp_action *)
 
int zfcp_fsf_close_lun (struct zfcp_erp_action *)
 
int zfcp_fsf_exchange_config_data (struct zfcp_erp_action *)
 
int zfcp_fsf_exchange_config_data_sync (struct zfcp_qdio *, struct fsf_qtcb_bottom_config *)
 
int zfcp_fsf_exchange_port_data (struct zfcp_erp_action *)
 
int zfcp_fsf_exchange_port_data_sync (struct zfcp_qdio *, struct fsf_qtcb_bottom_port *)
 
struct zfcp_fsf_reqzfcp_fsf_control_file (struct zfcp_adapter *, struct zfcp_fsf_cfdc *)
 
void zfcp_fsf_req_dismiss_all (struct zfcp_adapter *)
 
int zfcp_fsf_status_read (struct zfcp_qdio *)
 
int zfcp_status_read_refill (struct zfcp_adapter *adapter)
 
int zfcp_fsf_send_ct (struct zfcp_fc_wka_port *, struct zfcp_fsf_ct_els *, mempool_t *, unsigned int)
 
int zfcp_fsf_send_els (struct zfcp_adapter *, u32, struct zfcp_fsf_ct_els *, unsigned int)
 
int zfcp_fsf_fcp_cmnd (struct scsi_cmnd *)
 
void zfcp_fsf_req_free (struct zfcp_fsf_req *)
 
struct zfcp_fsf_reqzfcp_fsf_fcp_task_mgmt (struct scsi_cmnd *, u8)
 
struct zfcp_fsf_reqzfcp_fsf_abort_fcp_cmnd (struct scsi_cmnd *)
 
void zfcp_fsf_reqid_check (struct zfcp_qdio *, int)
 
int zfcp_qdio_setup (struct zfcp_adapter *)
 
void zfcp_qdio_destroy (struct zfcp_qdio *)
 
int zfcp_qdio_sbal_get (struct zfcp_qdio *)
 
int zfcp_qdio_send (struct zfcp_qdio *, struct zfcp_qdio_req *)
 
int zfcp_qdio_sbals_from_sg (struct zfcp_qdio *, struct zfcp_qdio_req *, struct scatterlist *)
 
int zfcp_qdio_open (struct zfcp_qdio *)
 
void zfcp_qdio_close (struct zfcp_qdio *)
 
void zfcp_qdio_siosl (struct zfcp_adapter *)
 
struct zfcp_fsf_reqzfcp_fsf_get_req (struct zfcp_qdio *, struct qdio_buffer *)
 
int zfcp_scsi_adapter_register (struct zfcp_adapter *)
 
void zfcp_scsi_adapter_unregister (struct zfcp_adapter *)
 
void zfcp_scsi_rport_work (struct work_struct *)
 
void zfcp_scsi_schedule_rport_register (struct zfcp_port *)
 
void zfcp_scsi_schedule_rport_block (struct zfcp_port *)
 
void zfcp_scsi_schedule_rports_block (struct zfcp_adapter *)
 
void zfcp_scsi_set_prot (struct zfcp_adapter *)
 
void zfcp_scsi_dif_sense_error (struct scsi_cmnd *, int)
 
int zfcp_unit_add (struct zfcp_port *, u64)
 
int zfcp_unit_remove (struct zfcp_port *, u64)
 
struct zfcp_unitzfcp_unit_find (struct zfcp_port *, u64)
 
struct scsi_devicezfcp_unit_sdev (struct zfcp_unit *unit)
 
void zfcp_unit_scsi_scan (struct zfcp_unit *)
 
void zfcp_unit_queue_scsi_scan (struct zfcp_port *)
 
unsigned int zfcp_unit_sdev_status (struct zfcp_unit *)
 

Variables

struct ccw_driver zfcp_ccw_driver
 
struct miscdevice zfcp_cfdc_misc
 
struct kmem_cachezfcp_fc_req_cache
 
struct kmem_cachezfcp_fsf_qtcb_cache
 
struct scsi_transport_templatezfcp_scsi_transport_template
 
struct fc_function_template zfcp_transport_functions
 
struct attribute_group zfcp_sysfs_unit_attrs
 
struct attribute_group zfcp_sysfs_adapter_attrs
 
struct attribute_group zfcp_sysfs_port_attrs
 
struct mutex zfcp_sysfs_port_units_mutex
 
struct device_attributezfcp_sysfs_sdev_attrs []
 
struct device_attributezfcp_sysfs_shost_attrs []
 

Function Documentation

struct zfcp_adapter* zfcp_adapter_enqueue ( struct ccw_device ccw_device)
read

zfcp_adapter_enqueue - enqueue a new adapter to the list : pointer to the struct cc_device

Returns: struct zfcp_adapter* Enqueues an adapter at the end of the adapter list in the driver data. All adapter internal structures are set up. Proc-fs entries are also created.

Definition at line 346 of file zfcp_aux.c.

void zfcp_adapter_release ( struct kref ref)

zfcp_adapter_release - remove the adapter from the resource list pointer to struct kref locks: adapter list write lock is assumed to be held by caller

Definition at line 451 of file zfcp_aux.c.

void zfcp_adapter_unregister ( struct zfcp_adapter )

Definition at line 426 of file zfcp_aux.c.

struct zfcp_adapter* zfcp_ccw_adapter_by_cdev ( struct ccw_device )
read

Definition at line 20 of file zfcp_ccw.c.

void zfcp_ccw_adapter_put ( struct zfcp_adapter )

Definition at line 33 of file zfcp_ccw.c.

int zfcp_ccw_priv_sch ( struct zfcp_adapter adapter)

zfcp_ccw_priv_sch - check if subchannel is privileged : Adapter/Subchannel to check

Definition at line 78 of file zfcp_ccw.c.

void zfcp_cfdc_adapter_access_changed ( struct zfcp_adapter adapter)

zfcp_cfdc_adapter_access_changed - Process change in adapter ACT : Adapter where the Access Control Table (ACT) changed

After a change in the adapter ACT, check if access to any previously denied resources is now possible.

Definition at line 274 of file zfcp_cfdc.c.

void zfcp_cfdc_lun_denied ( struct scsi_device sdev,
union fsf_status_qual qual 
)

zfcp_cfdc_lun_denied - Process "access denied" for LUN : The SCSI device / LUN where the access has been denied : The FSF status qualifier for the access denied FSF status

Definition at line 343 of file zfcp_cfdc.c.

void zfcp_cfdc_lun_shrng_vltn ( struct scsi_device sdev,
union fsf_status_qual qual 
)

zfcp_cfdc_lun_shrng_vltn - Evaluate LUN sharing violation status : The LUN / SCSI device where sharing violation occurred : The FSF status qualifier from the LUN sharing violation

Definition at line 367 of file zfcp_cfdc.c.

int zfcp_cfdc_open_lun_eval ( struct scsi_device sdev,
struct fsf_qtcb_bottom_support bottom 
)

zfcp_cfdc_open_lun_eval - Eval access ctrl. status for successful "open lun" : The SCSI device / LUN where to evaluate the status : The qtcb bottom with the status from the "open lun"

Returns: 0 if LUN is usable, -EACCES if the access control table reports an unsupported configuration.

Definition at line 398 of file zfcp_cfdc.c.

void zfcp_cfdc_port_denied ( struct zfcp_port port,
union fsf_status_qual qual 
)

zfcp_cfdc_port_denied - Process "access denied" for port : The port where the access has been denied : The FSF status qualifier for the access denied FSF status

Definition at line 324 of file zfcp_cfdc.c.

int zfcp_dbf_adapter_register ( struct zfcp_adapter adapter)

zfcp_adapter_debug_register - registers debug feature for an adapter : pointer to adapter for which debug features should be registered return: -ENOMEM on error, 0 otherwise

Definition at line 473 of file zfcp_dbf.c.

void zfcp_dbf_adapter_unregister ( struct zfcp_adapter adapter)

zfcp_adapter_debug_unregister - unregisters debug feature for an adapter : pointer to adapter for which debug features should be unregistered

Definition at line 530 of file zfcp_dbf.c.

void zfcp_dbf_hba_basic ( char tag,
struct zfcp_adapter adapter 
)

zfcp_dbf_hba_basic - trace event for basic adapter events : pointer to struct zfcp_adapter

Definition at line 207 of file zfcp_dbf.c.

void zfcp_dbf_hba_berr ( struct zfcp_dbf ,
struct zfcp_fsf_req  
)
void zfcp_dbf_hba_bit_err ( char tag,
struct zfcp_fsf_req req 
)

zfcp_dbf_hba_bit_err - trace event for bit error conditions : tag indicating which kind of unsolicited status has been received : request which caused the bit_error condition

Definition at line 145 of file zfcp_dbf.c.

void zfcp_dbf_hba_def_err ( struct zfcp_adapter adapter,
u64  req_id,
u16  scount,
void **  pl 
)

zfcp_dbf_hba_def_err - trace event for deferred error messages : pointer to struct zfcp_adapter : request id which caused the deferred error message : number of sbals incl. the signaling sbal : array of all involved sbals

Definition at line 174 of file zfcp_dbf.c.

void zfcp_dbf_hba_fsf_res ( char tag,
struct zfcp_fsf_req req 
)

zfcp_dbf_hba_fsf_res - trace event for fsf responses : tag indicating which kind of unsolicited status has been received : request for which a response was received

Definition at line 61 of file zfcp_dbf.c.

void zfcp_dbf_hba_fsf_uss ( char tag,
struct zfcp_fsf_req req 
)

zfcp_dbf_hba_fsf_uss - trace event for an unsolicited status buffer : tag indicating which kind of unsolicited status has been received : request providing the unsolicited status

Definition at line 102 of file zfcp_dbf.c.

void zfcp_dbf_rec_run ( char tag,
struct zfcp_erp_action erp 
)

zfcp_dbf_rec_run - trace event related to running recovery : identifier for event : erp_action running

Definition at line 286 of file zfcp_dbf.c.

void zfcp_dbf_rec_trig ( char tag,
struct zfcp_adapter adapter,
struct zfcp_port port,
struct scsi_device sdev,
u8  want,
u8  need 
)

zfcp_dbf_rec_trig - trace event related to triggered recovery : identifier for event : adapter on which the erp_action should run : remote port involved in the erp_action : scsi device involved in the erp_action : wanted erp_action : required erp_action

The adapter->erp_lock has to be held.

Definition at line 251 of file zfcp_dbf.c.

void zfcp_dbf_san_in_els ( char tag,
struct zfcp_fsf_req fsf 
)

zfcp_dbf_san_in_els - trace event for incoming ELS : indentifier for event : request containing issued CT data

Definition at line 376 of file zfcp_dbf.c.

void zfcp_dbf_san_req ( char tag,
struct zfcp_fsf_req fsf,
u32  d_id 
)

zfcp_dbf_san_req - trace event for issued SAN request : indentifier for event : request containing issued CT data d_id: destination ID

Definition at line 344 of file zfcp_dbf.c.

void zfcp_dbf_san_res ( char tag,
struct zfcp_fsf_req fsf 
)

zfcp_dbf_san_res - trace event for received SAN request : indentifier for event : request containing issued CT data

Definition at line 360 of file zfcp_dbf.c.

void zfcp_dbf_scsi ( char tag,
struct scsi_cmnd sc,
struct zfcp_fsf_req fsf 
)

zfcp_dbf_scsi - trace event for scsi commands : identifier for event : pointer to struct scsi_cmnd : pointer to struct zfcp_fsf_req

Definition at line 395 of file zfcp_dbf.c.

void zfcp_device_unregister ( struct device dev,
const struct attribute_group grp 
)

zfcp_device_unregister - remove port, unit from system : reference to device which is to be removed : related reference to attribute group

Helper function to unregister port, unit from system

Definition at line 474 of file zfcp_aux.c.

void zfcp_erp_adapter_reopen ( struct zfcp_adapter adapter,
int  clear,
char id 
)

zfcp_erp_adapter_reopen - Reopen adapter. : Adapter to reopen. : Status flags to clear. : Id for debug trace event.

Definition at line 286 of file zfcp_erp.c.

void zfcp_erp_adapter_shutdown ( struct zfcp_adapter adapter,
int  clear,
char id 
)

zfcp_erp_adapter_shutdown - Shutdown adapter. : Adapter to shut down. : Status flags to clear. : Id for debug trace event.

Definition at line 309 of file zfcp_erp.c.

void zfcp_erp_clear_adapter_status ( struct zfcp_adapter adapter,
u32  mask 
)

zfcp_erp_clear_adapter_status - clear adapter status bits : adapter to change the status : status bits to change

Changes in common status bits are propagated to attached ports and LUNs.

Definition at line 1449 of file zfcp_erp.c.

void zfcp_erp_clear_lun_status ( struct scsi_device sdev,
u32  mask 
)

zfcp_erp_clear_lun_status - clear lun status bits : SCSi device / lun to clear the status bits : status bits to change

Definition at line 1550 of file zfcp_erp.c.

void zfcp_erp_clear_port_status ( struct zfcp_port port,
u32  mask 
)

zfcp_erp_clear_port_status - clear port status bits : adapter to change the status : status bits to change

Changes in common status bits are propagated to attached LUNs.

Definition at line 1510 of file zfcp_erp.c.

void zfcp_erp_lun_reopen ( struct scsi_device sdev,
int  clear,
char id 
)

zfcp_erp_lun_reopen - initiate reopen of a LUN : SCSI device / LUN to be reopened : specifies flags in LUN status to be cleared : Id for debug trace event.

Return: 0 on success, < 0 on error

Definition at line 428 of file zfcp_erp.c.

void zfcp_erp_lun_shutdown ( struct scsi_device sdev,
int  clear,
char id 
)

zfcp_erp_lun_shutdown - Shutdown LUN : SCSI device / LUN to shut down. : Status flags to clear. : Id for debug trace event.

Definition at line 446 of file zfcp_erp.c.

void zfcp_erp_lun_shutdown_wait ( struct scsi_device sdev,
char id 
)

zfcp_erp_lun_shutdown_wait - Shutdown LUN and wait for erp completion : SCSI device / LUN to shut down. : Id for debug trace event.

Do not acquire a reference for the LUN when creating the ERP action. It is safe, because this function waits for the ERP to complete first. This allows to shutdown the LUN, even when the SCSI device is in the state SDEV_DEL when scsi_device_get will fail.

Definition at line 462 of file zfcp_erp.c.

void zfcp_erp_notify ( struct zfcp_erp_action erp_action,
unsigned long  set_mask 
)

zfcp_erp_notify - Trigger ERP action. : ERP action to continue. : ERP action status flags to set.

Definition at line 542 of file zfcp_erp.c.

void zfcp_erp_port_forced_reopen ( struct zfcp_port port,
int  clear,
char id 
)

zfcp_erp_port_forced_reopen - Forced close of port and open again : Port to force close and to reopen. : Status flags to clear. : Id for debug trace event.

Definition at line 353 of file zfcp_erp.c.

int zfcp_erp_port_reopen ( struct zfcp_port port,
int  clear,
char id 
)

zfcp_erp_port_reopen - trigger remote port recovery : port to recover : flags in port status to be cleared : Id for debug trace event.

Returns 0 if recovery has been triggered, < 0 if not.

Definition at line 386 of file zfcp_erp.c.

void zfcp_erp_port_shutdown ( struct zfcp_port port,
int  clear,
char id 
)

zfcp_erp_port_shutdown - Shutdown port : Port to shut down. : Status flags to clear. : Id for debug trace event.

Definition at line 322 of file zfcp_erp.c.

void zfcp_erp_set_adapter_status ( struct zfcp_adapter adapter,
u32  mask 
)

zfcp_erp_set_adapter_status - set adapter status bits : adapter to change the status : status bits to change

Changes in common status bits are propagated to attached ports and LUNs.

Definition at line 1421 of file zfcp_erp.c.

void zfcp_erp_set_lun_status ( struct scsi_device sdev,
u32  mask 
)

zfcp_erp_set_lun_status - set lun status bits : SCSI device / lun to set the status bits : status bits to change

Definition at line 1538 of file zfcp_erp.c.

void zfcp_erp_set_port_status ( struct zfcp_port port,
u32  mask 
)

zfcp_erp_set_port_status - set port status bits : port to change the status : status bits to change

Changes in common status bits are propagated to attached LUNs.

Definition at line 1487 of file zfcp_erp.c.

void zfcp_erp_thread_kill ( struct zfcp_adapter adapter)

zfcp_erp_thread_kill - Stop ERP thread. : Adapter where the ERP thread should be stopped.

The caller of this routine ensures that the specified adapter has been shut down and that this operation has been completed. Thus, there are no pending erp_actions which would need to be handled here.

Definition at line 1395 of file zfcp_erp.c.

int zfcp_erp_thread_setup ( struct zfcp_adapter adapter)

zfcp_erp_thread_setup - Start ERP thread for adapter : Adapter to start the ERP thread for

Returns 0 on success or error code from kernel_thread()

Definition at line 1370 of file zfcp_erp.c.

void zfcp_erp_timeout_handler ( unsigned long  data)

zfcp_erp_timeout_handler - Trigger ERP action from timed out ERP request : ERP action (from timer data)

Definition at line 559 of file zfcp_erp.c.

void zfcp_erp_wait ( struct zfcp_adapter adapter)

zfcp_erp_wait - wait for completion of error recovery on an adapter : adapter for which to wait for completion of its error recovery

Definition at line 1407 of file zfcp_erp.c.

void zfcp_fc_conditional_port_scan ( struct zfcp_adapter )

Definition at line 34 of file zfcp_fc.c.

void zfcp_fc_enqueue_event ( struct zfcp_adapter adapter,
enum fc_host_event_code  event_code,
u32  event_data 
)

zfcp_fc_enqueue_event - safely enqueue FC HBA API event from irq context : The adapter where to enqueue the event : The event code (as defined in fc_host_event_code in scsi_transport_fc.h) : The event data (e.g. n_port page in case of els)

Definition at line 83 of file zfcp_fc.c.

int zfcp_fc_exec_bsg_job ( struct fc_bsg_job )

Definition at line 935 of file zfcp_fc.c.

void zfcp_fc_gs_destroy ( struct zfcp_adapter )

Definition at line 986 of file zfcp_fc.c.

int zfcp_fc_gs_setup ( struct zfcp_adapter )

Definition at line 969 of file zfcp_fc.c.

void zfcp_fc_incoming_els ( struct zfcp_fsf_req fsf_req)

zfcp_fc_incoming_els - handle incoming ELS - request which contains incoming ELS

Definition at line 272 of file zfcp_fc.c.

void zfcp_fc_inverse_conditional_port_scan ( struct zfcp_adapter )

Definition at line 42 of file zfcp_fc.c.

void zfcp_fc_link_test_work ( struct work_struct )

Definition at line 510 of file zfcp_fc.c.

void zfcp_fc_plogi_evaluate ( struct zfcp_port port,
struct fc_els_flogi plogi 
)

zfcp_fc_plogi_evaluate - evaluate PLOGI playload : zfcp_port structure : plogi payload

Evaluate PLOGI playload and copy important fields into zfcp_port structure

Definition at line 417 of file zfcp_fc.c.

void zfcp_fc_port_did_lookup ( struct work_struct )

Definition at line 376 of file zfcp_fc.c.

void zfcp_fc_post_event ( struct work_struct work)

zfcp_fc_post_event - post event to userspace via fc_transport : work struct with enqueued events

Definition at line 54 of file zfcp_fc.c.

void zfcp_fc_scan_ports ( struct work_struct work)

zfcp_fc_scan_ports - scan remote ports and attach new ports : reference to scheduled work

Definition at line 681 of file zfcp_fc.c.

void zfcp_fc_sym_name_update ( struct work_struct work)

zfcp_fc_sym_name_update - Retrieve and update the symbolic port name : ns_up_work of the adapter where to update the symbolic port name

Retrieve the current symbolic port name that may have been set by the hardware using the GSPN request and update the fc_host symbolic_name sysfs attribute. When running in NPIV mode (and hence the port name is unique for this system), update the symbolic port name to add Linux specific information and update the FC nameserver using the RSPN request.

Definition at line 808 of file zfcp_fc.c.

void zfcp_fc_test_link ( struct zfcp_port port)

zfcp_fc_test_link - lightweight link test procedure : port to be tested

Test status of a link to a remote port using the ELS command ADISC. If there is a problem with the remote port, error recovery steps will be triggered.

Definition at line 546 of file zfcp_fc.c.

int zfcp_fc_timeout_bsg_job ( struct fc_bsg_job )

Definition at line 963 of file zfcp_fc.c.

void zfcp_fc_trigger_did_lookup ( struct zfcp_port port)

zfcp_fc_trigger_did_lookup - trigger the d_id lookup using a GID_PN request : The zfcp_port to lookup the d_id for.

Definition at line 403 of file zfcp_fc.c.

void zfcp_fc_wka_ports_force_offline ( struct zfcp_fc_wka_ports *  )

Definition at line 177 of file zfcp_fc.c.

struct zfcp_fsf_req* zfcp_fsf_abort_fcp_cmnd ( struct scsi_cmnd scmnd)
read

zfcp_fsf_abort_fcp_cmnd - abort running SCSI command : The SCSI command to abort Returns: pointer to struct zfcp_fsf_req

Definition at line 864 of file zfcp_fsf.c.

int zfcp_fsf_close_lun ( struct zfcp_erp_action erp_action)

zfcp_fsf_close_LUN - close LUN : pointer to erp_action triggering the "close LUN" Returns: 0 on success, error otherwise

Definition at line 1937 of file zfcp_fsf.c.

int zfcp_fsf_close_physical_port ( struct zfcp_erp_action erp_action)

zfcp_fsf_close_physical_port - close physical port : pointer to struct zfcp_erp_action Returns: 0 on success

Definition at line 1731 of file zfcp_fsf.c.

int zfcp_fsf_close_port ( struct zfcp_erp_action erp_action)

zfcp_fsf_close_port - create and send close port request : pointer to struct zfcp_erp_action Returns: 0 on success, error otherwise

Definition at line 1511 of file zfcp_fsf.c.

int zfcp_fsf_close_wka_port ( struct zfcp_fc_wka_port *  wka_port)

zfcp_fsf_close_wka_port - create and send close wka port request : WKA port to open Returns: 0 on success, error otherwise

Definition at line 1639 of file zfcp_fsf.c.

struct zfcp_fsf_req* zfcp_fsf_control_file ( struct zfcp_adapter adapter,
struct zfcp_fsf_cfdc fsf_cfdc 
)
read

zfcp_fsf_control_file - control file upload/download : pointer to struct zfcp_adapter : pointer to struct zfcp_fsf_cfdc Returns: on success pointer to struct zfcp_fsf_req, NULL otherwise

Definition at line 2378 of file zfcp_fsf.c.

int zfcp_fsf_exchange_config_data ( struct zfcp_erp_action )

Definition at line 1189 of file zfcp_fsf.c.

int zfcp_fsf_exchange_config_data_sync ( struct zfcp_qdio ,
struct fsf_qtcb_bottom_config  
)

Definition at line 1231 of file zfcp_fsf.c.

int zfcp_fsf_exchange_port_data ( struct zfcp_erp_action erp_action)

zfcp_fsf_exchange_port_data - request information about local port : ERP action for the adapter for which port data is requested Returns: 0 on success, error otherwise

Definition at line 1280 of file zfcp_fsf.c.

int zfcp_fsf_exchange_port_data_sync ( struct zfcp_qdio qdio,
struct fsf_qtcb_bottom_port data 
)

zfcp_fsf_exchange_port_data_sync - request information about local port : pointer to struct zfcp_qdio : pointer to struct fsf_qtcb_bottom_port Returns: 0 on success, error otherwise

Definition at line 1326 of file zfcp_fsf.c.

int zfcp_fsf_fcp_cmnd ( struct scsi_cmnd scsi_cmnd)

zfcp_fsf_fcp_cmnd - initiate an FCP command (for a SCSI command) : scsi command to be sent

Definition at line 2208 of file zfcp_fsf.c.

struct zfcp_fsf_req* zfcp_fsf_fcp_task_mgmt ( struct scsi_cmnd scmnd,
u8  tm_flags 
)
read

zfcp_fsf_fcp_task_mgmt - send SCSI task management command : SCSI command to send the task management command for : unsigned byte for task management flags Returns: on success pointer to struct fsf_req, NULL otherwise

Definition at line 2319 of file zfcp_fsf.c.

struct zfcp_fsf_req* zfcp_fsf_get_req ( struct zfcp_qdio ,
struct qdio_buffer  
)
read

Definition at line 2479 of file zfcp_fsf.c.

int zfcp_fsf_open_lun ( struct zfcp_erp_action erp_action)

zfcp_fsf_open_lun - open LUN : pointer to struct zfcp_erp_action Returns: 0 on success, error otherwise

Definition at line 1846 of file zfcp_fsf.c.

int zfcp_fsf_open_port ( struct zfcp_erp_action erp_action)

zfcp_fsf_open_port - create and send open port request : pointer to struct zfcp_erp_action Returns: 0 on success, error otherwise

Definition at line 1444 of file zfcp_fsf.c.

int zfcp_fsf_open_wka_port ( struct zfcp_fc_wka_port *  wka_port)

zfcp_fsf_open_wka_port - create and send open wka-port request : pointer to struct zfcp_fc_wka_port Returns: 0 on success, error otherwise

Definition at line 1586 of file zfcp_fsf.c.

void zfcp_fsf_req_dismiss_all ( struct zfcp_adapter adapter)

zfcp_fsf_req_dismiss_all - dismiss all fsf requests : pointer to struct zfcp_adapter

Never ever call this without shutting down the adapter first. Otherwise the adapter would continue using and corrupting s390 storage. Included BUG_ON() call to ensure this is done. ERP is supposed to be the only user of this function.

Definition at line 425 of file zfcp_fsf.c.

void zfcp_fsf_req_free ( struct zfcp_fsf_req req)

zfcp_fsf_req_free - free memory used by fsf request : pointer to struct zfcp_fsf_req

Definition at line 78 of file zfcp_fsf.c.

void zfcp_fsf_reqid_check ( struct zfcp_qdio qdio,
int  sbal_idx 
)

zfcp_fsf_reqid_check - validate req_id contained in SBAL returned by QDIO : pointer to struct zfcp_adapter : response queue index of SBAL to be processed

Definition at line 2446 of file zfcp_fsf.c.

int zfcp_fsf_send_ct ( struct zfcp_fc_wka_port *  wka_port,
struct zfcp_fsf_ct_els ct,
mempool_t pool,
unsigned int  timeout 
)

zfcp_fsf_send_ct - initiate a Generic Service request (FC-GS) : pointer to struct zfcp_send_ct with data for request : if non-null this mempool is used to allocate struct zfcp_fsf_req

Definition at line 1042 of file zfcp_fsf.c.

int zfcp_fsf_send_els ( struct zfcp_adapter adapter,
u32  d_id,
struct zfcp_fsf_ct_els els,
unsigned int  timeout 
)

zfcp_fsf_send_els - initiate an ELS command (FC-FS) : pointer to struct zfcp_send_els with data for the command

Definition at line 1141 of file zfcp_fsf.c.

int zfcp_fsf_status_read ( struct zfcp_qdio qdio)

zfcp_fsf_status_read - send status read request : pointer to struct zfcp_adapter : request flags Returns: 0 on success, ERROR otherwise

Definition at line 753 of file zfcp_fsf.c.

struct zfcp_port* zfcp_get_port_by_wwpn ( struct zfcp_adapter adapter,
u64  wwpn 
)
read

zfcp_get_port_by_wwpn - find port in port list of adapter by wwpn : pointer to adapter to search for port : wwpn to search for

Returns: pointer to zfcp_port or NULL

Definition at line 193 of file zfcp_aux.c.

struct zfcp_port* zfcp_port_enqueue ( struct zfcp_adapter adapter,
u64  wwpn,
u32  status,
u32  d_id 
)
read

zfcp_port_enqueue - enqueue port to port list of adapter : adapter where remote port is added : WWPN of the remote port to be enqueued : initial status for the port : destination id of the remote port to be enqueued Returns: pointer to enqueued port on success, ERR_PTR on error

All port internal structures are set up and the sysfs entry is generated. d_id is used to enqueue ports with a well known address like the Directory Service for nameserver lookup.

Definition at line 501 of file zfcp_aux.c.

void zfcp_qdio_close ( struct zfcp_qdio qdio)

zfcp_close_qdio - close qdio queues for an adapter : pointer to structure zfcp_qdio

Definition at line 348 of file zfcp_qdio.c.

void zfcp_qdio_destroy ( struct zfcp_qdio )

Definition at line 453 of file zfcp_qdio.c.

int zfcp_qdio_open ( struct zfcp_qdio qdio)

zfcp_qdio_open - prepare and initialize response queue : pointer to struct zfcp_qdio Returns: 0 on success, otherwise -EIO

Definition at line 381 of file zfcp_qdio.c.

int zfcp_qdio_sbal_get ( struct zfcp_qdio qdio)

zfcp_qdio_sbal_get - get free sbal in request queue, wait if necessary : pointer to struct zfcp_qdio

The req_q_lock must be held by the caller of this function, and this function may only be called from process context; it will sleep when waiting for a free sbal.

Returns: 0 on success, -EIO if there is no free sbal after waiting.

Definition at line 245 of file zfcp_qdio.c.

int zfcp_qdio_sbals_from_sg ( struct zfcp_qdio qdio,
struct zfcp_qdio_req q_req,
struct scatterlist sg 
)

zfcp_qdio_sbals_from_sg - fill SBALs from scatter-gather list : pointer to struct zfcp_qdio : pointer to struct zfcp_qdio_req : scatter-gather list : upper bound for number of SBALs to be used Returns: zero or -EINVAL on error

Definition at line 202 of file zfcp_qdio.c.

int zfcp_qdio_send ( struct zfcp_qdio qdio,
struct zfcp_qdio_req q_req 
)

zfcp_qdio_send - set PCI flag in first SBALE and send req to QDIO : pointer to struct zfcp_qdio : pointer to struct zfcp_qdio_req Returns: 0 on success, error otherwise

Definition at line 275 of file zfcp_qdio.c.

int zfcp_qdio_setup ( struct zfcp_adapter )

Definition at line 471 of file zfcp_qdio.c.

void zfcp_qdio_siosl ( struct zfcp_adapter adapter)

zfcp_qdio_siosl - Trigger logging in FCP channel : The zfcp_adapter where to trigger logging

Call the cio siosl function to trigger hardware logging. This wrapper function sets a flag to ensure hardware logging is only triggered once before going through qdio shutdown.

The triggers are always run from qdio tasklet context, so no additional synchronization is necessary.

Definition at line 504 of file zfcp_qdio.c.

int zfcp_scsi_adapter_register ( struct zfcp_adapter adapter)

zfcp_scsi_adapter_register - Register SCSI and FC host with SCSI midlayer : The zfcp adapter to register with the SCSI midlayer

Definition at line 327 of file zfcp_scsi.c.

void zfcp_scsi_adapter_unregister ( struct zfcp_adapter adapter)

zfcp_scsi_adapter_unregister - Unregister SCSI and FC host from SCSI midlayer : The zfcp adapter to unregister.

Definition at line 367 of file zfcp_scsi.c.

void zfcp_scsi_dif_sense_error ( struct scsi_cmnd scmd,
int  ascq 
)

zfcp_scsi_dif_sense_error - Report DIF/DIX error as driver sense error : The SCSI command to report the error for : The ASCQ to put in the sense buffer

See the error handling in sd_done for the sense codes used here. Set DID_SOFT_ERROR to retry the request, if possible.

Definition at line 689 of file zfcp_scsi.c.

void zfcp_scsi_rport_work ( struct work_struct )

Definition at line 634 of file zfcp_scsi.c.

void zfcp_scsi_schedule_rport_block ( struct zfcp_port )

Definition at line 611 of file zfcp_scsi.c.

void zfcp_scsi_schedule_rport_register ( struct zfcp_port )

Definition at line 602 of file zfcp_scsi.c.

void zfcp_scsi_schedule_rports_block ( struct zfcp_adapter )

Definition at line 623 of file zfcp_scsi.c.

void zfcp_scsi_set_prot ( struct zfcp_adapter adapter)

zfcp_scsi_set_prot - Configure DIF/DIX support in scsi_host : The adapter where to configure DIF/DIX for the SCSI host

Definition at line 656 of file zfcp_scsi.c.

void zfcp_sg_free_table ( struct scatterlist sg,
int  count 
)

zfcp_sg_free_table - free memory used by scatterlists : pointer to scatterlist : number of scatterlist which are to be free'ed the scatterlist are expected to reference pages always

Definition at line 571 of file zfcp_aux.c.

int zfcp_sg_setup_table ( struct scatterlist sg,
int  count 
)

zfcp_sg_setup_table - init scatterlist and allocate, assign buffers : pointer to struct scatterlist : number of scatterlists which should be assigned with buffers of size page

Returns: 0 on success, -ENOMEM otherwise

Definition at line 590 of file zfcp_aux.c.

int zfcp_status_read_refill ( struct zfcp_adapter adapter)

zfcp_status_read_refill - refill the long running status_read_requests : ptr to struct zfcp_adapter for which the buffers should be refilled

Returns: 0 on success, 1 otherwise

if there are 16 or more status_read requests missing an adapter_reopen is triggered

Definition at line 285 of file zfcp_aux.c.

int zfcp_unit_add ( struct zfcp_port port,
u64  fcp_lun 
)

zfcp_unit_enqueue - enqueue unit to unit list of a port. : pointer to port where unit is added : FCP LUN of unit to be enqueued Returns: 0 success

Sets up some unit internal structures and creates sysfs entry.

Definition at line 119 of file zfcp_unit.c.

struct zfcp_unit* zfcp_unit_find ( struct zfcp_port port,
u64  fcp_lun 
)
read

zfcp_unit_find - Find and return zfcp_unit with specified FCP LUN : zfcp_port where to look for the unit : 64 Bit FCP LUN used to identify the zfcp_unit

If zfcp_unit is found, a reference is acquired that has to be released later.

Returns: Pointer to the zfcp_unit, or NULL if there is no zfcp_unit with the specified FCP LUN.

Definition at line 89 of file zfcp_unit.c.

void zfcp_unit_queue_scsi_scan ( struct zfcp_port port)

zfcp_unit_queue_scsi_scan - Register configured units on port : The zfcp_port where to register units

After opening a port, all units configured on this port have to be registered with the SCSI midlayer. This function should be called after calling fc_remote_port_add, so that the fc_rport is already ONLINE and the call to scsi_scan_target runs the same way as the call in the FC transport class.

Definition at line 51 of file zfcp_unit.c.

int zfcp_unit_remove ( struct zfcp_port port,
u64  fcp_lun 
)

zfcp_unit_remove - Remove entry from list of configured units : The port where to remove the unit from the configuration : The 64 bit LUN of the unit to remove

Returns: -EINVAL if a unit with the specified LUN does not exist, 0 on success.

Definition at line 235 of file zfcp_unit.c.

void zfcp_unit_scsi_scan ( struct zfcp_unit unit)

zfcp_unit_scsi_scan - Register LUN with SCSI midlayer : The zfcp LUN/unit to register

When the SCSI midlayer is not allowed to automatically scan and attach SCSI devices, zfcp has to register the single devices with the SCSI midlayer.

Definition at line 21 of file zfcp_unit.c.

struct scsi_device* zfcp_unit_sdev ( struct zfcp_unit unit)
read

zfcp_unit_sdev - Return SCSI device for zfcp_unit : The zfcp_unit where to get the SCSI device for

Returns: scsi_device pointer on success, NULL if there is no SCSI device for this zfcp_unit

On success, the caller also holds a reference to the SCSI device that must be released with scsi_device_put.

Definition at line 192 of file zfcp_unit.c.

unsigned int zfcp_unit_sdev_status ( struct zfcp_unit unit)

zfcp_unit_sdev_status - Return zfcp LUN status for SCSI device : The unit to lookup the SCSI device for

Returns the zfcp LUN status field of the SCSI device if the SCSI device for the zfcp_unit exists, 0 otherwise.

Definition at line 211 of file zfcp_unit.c.

Variable Documentation

struct ccw_driver zfcp_ccw_driver

Definition at line 312 of file zfcp_ccw.c.

struct miscdevice zfcp_cfdc_misc

Definition at line 261 of file zfcp_cfdc.c.

struct kmem_cache* zfcp_fc_req_cache

Definition at line 20 of file zfcp_fc.c.

struct kmem_cache* zfcp_fsf_qtcb_cache

Definition at line 21 of file zfcp_fsf.c.

struct scsi_transport_template* zfcp_scsi_transport_template

Definition at line 297 of file zfcp_scsi.c.

struct attribute_group zfcp_sysfs_adapter_attrs

Definition at line 294 of file zfcp_sysfs.c.

struct attribute_group zfcp_sysfs_port_attrs

zfcp_sysfs_port_attrs - sysfs attributes for all other ports

Definition at line 347 of file zfcp_sysfs.c.

struct mutex zfcp_sysfs_port_units_mutex
struct device_attribute* zfcp_sysfs_sdev_attrs[]

Definition at line 454 of file zfcp_sysfs.c.

struct device_attribute* zfcp_sysfs_shost_attrs[]

Definition at line 561 of file zfcp_sysfs.c.

struct attribute_group zfcp_sysfs_unit_attrs

Definition at line 361 of file zfcp_sysfs.c.

struct fc_function_template zfcp_transport_functions

Definition at line 698 of file zfcp_scsi.c.