On Wed, 2010-11-17 at 16:39 -0500, Christoph Hellwig wrote: > Mark all functions that scripts/namespace.pl noticed static, and > perform a simple garbage collection as second pass. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > Committed as c869585a04 and pushed to lio-core-2.6.git. Thanks! --nab > Index: lio-core/drivers/target/target_core_alua.c > =================================================================== > --- lio-core.orig/drivers/target/target_core_alua.c 2010-11-17 11:01:16.124015508 +0100 > +++ lio-core/drivers/target/target_core_alua.c 2010-11-17 22:25:25.592004262 +0100 > @@ -41,6 +41,11 @@ > #include "target_core_hba.h" > #include "target_core_ua.h" > > +static int core_alua_check_transition(int state, int *primary); > +static int core_alua_set_tg_pt_secondary_state( > + struct t10_alua_tg_pt_gp_member *tg_pt_gp_mem, > + struct se_port *port, int explict, int offline); > + > /* > * REPORT_TARGET_PORT_GROUPS > * > @@ -434,7 +439,7 @@ static inline int core_alua_state_transi > * in transport_cmd_sequencer(). This function is assigned to > * struct t10_alua *->state_check() in core_setup_alua() > */ > -int core_alua_state_check_nop( > +static int core_alua_state_check_nop( > struct se_cmd *cmd, > unsigned char *cdb, > u8 *alua_ascq) > @@ -454,7 +459,7 @@ int core_alua_state_check_nop( > * return 0: Used to signal success > * reutrn -1: Used to signal failure, and TGCS_INVALID_CDB_FIELD > */ > -int core_alua_state_check( > +static int core_alua_state_check( > struct se_cmd *cmd, > unsigned char *cdb, > u8 *alua_ascq) > @@ -526,7 +531,7 @@ int core_alua_state_check( > /* > * Check implict and explict ALUA state change request. > */ > -int core_alua_check_transition(int state, int *primary) > +static int core_alua_check_transition(int state, int *primary) > { > switch (state) { > case ALUA_ACCESS_STATE_ACTIVE_OPTMIZED: > @@ -554,7 +559,7 @@ int core_alua_check_transition(int state > return 0; > } > > -char *core_alua_dump_state(int state) > +static char *core_alua_dump_state(int state) > { > switch (state) { > case ALUA_ACCESS_STATE_ACTIVE_OPTMIZED: > @@ -620,7 +625,7 @@ EXPORT_SYMBOL(core_alua_check_nonop_dela > * Called with tg_pt_gp->tg_pt_gp_md_mutex or tg_pt_gp_mem->sep_tg_pt_md_mutex > * > */ > -int core_alua_write_tpg_metadata( > +static int core_alua_write_tpg_metadata( > const char *path, > unsigned char *md_buf, > u32 md_buf_len) > @@ -660,7 +665,7 @@ int core_alua_write_tpg_metadata( > /* > * Called with tg_pt_gp->tg_pt_gp_md_mutex held > */ > -int core_alua_update_tpg_primary_metadata( > +static int core_alua_update_tpg_primary_metadata( > struct t10_alua_tg_pt_gp *tg_pt_gp, > int primary_state, > unsigned char *md_buf) > @@ -686,7 +691,7 @@ int core_alua_update_tpg_primary_metadat > return core_alua_write_tpg_metadata(path, md_buf, len); > } > > -int core_alua_do_transition_tg_pt( > +static int core_alua_do_transition_tg_pt( > struct t10_alua_tg_pt_gp *tg_pt_gp, > struct se_port *l_port, > struct se_node_acl *nacl, > @@ -923,7 +928,7 @@ int core_alua_do_port_transition( > /* > * Called with tg_pt_gp_mem->sep_tg_pt_md_mutex held > */ > -int core_alua_update_tpg_secondary_metadata( > +static int core_alua_update_tpg_secondary_metadata( > struct t10_alua_tg_pt_gp_member *tg_pt_gp_mem, > struct se_port *port, > unsigned char *md_buf, > @@ -955,7 +960,7 @@ int core_alua_update_tpg_secondary_metad > return core_alua_write_tpg_metadata(path, md_buf, len); > } > > -int core_alua_set_tg_pt_secondary_state( > +static int core_alua_set_tg_pt_secondary_state( > struct t10_alua_tg_pt_gp_member *tg_pt_gp_mem, > struct se_port *port, > int explict, > @@ -1023,7 +1028,8 @@ int core_alua_set_tg_pt_secondary_state( > return 0; > } > > -struct t10_alua_lu_gp *core_alua_allocate_lu_gp(const char *name, int def_group) > +struct t10_alua_lu_gp * > +core_alua_allocate_lu_gp(const char *name, int def_group) > { > struct t10_alua_lu_gp *lu_gp; > > @@ -1093,8 +1099,8 @@ again: > return 0; > } > > -struct t10_alua_lu_gp_member *core_alua_allocate_lu_gp_mem( > - struct se_device *dev) > +static struct t10_alua_lu_gp_member * > +core_alua_allocate_lu_gp_mem(struct se_device *dev) > { > struct t10_alua_lu_gp_member *lu_gp_mem; > > @@ -1480,7 +1486,7 @@ void core_alua_free_tg_pt_gp_mem(struct > kmem_cache_free(t10_alua_tg_pt_gp_mem_cache, tg_pt_gp_mem); > } > > -struct t10_alua_tg_pt_gp *core_alua_get_tg_pt_gp_by_name( > +static struct t10_alua_tg_pt_gp *core_alua_get_tg_pt_gp_by_name( > struct se_subsystem_dev *su_dev, > const char *name) > { > @@ -1504,7 +1510,7 @@ struct t10_alua_tg_pt_gp *core_alua_get_ > return NULL; > } > > -void core_alua_put_tg_pt_gp_from_name( > +static void core_alua_put_tg_pt_gp_from_name( > struct t10_alua_tg_pt_gp *tg_pt_gp) > { > struct se_subsystem_dev *su_dev = tg_pt_gp->tg_pt_gp_su_dev; > @@ -1533,7 +1539,7 @@ void __core_alua_attach_tg_pt_gp_mem( > /* > * Called with struct t10_alua_tg_pt_gp_member->tg_pt_gp_mem_lock held > */ > -void __core_alua_drop_tg_pt_gp_mem( > +static void __core_alua_drop_tg_pt_gp_mem( > struct t10_alua_tg_pt_gp_member *tg_pt_gp_mem, > struct t10_alua_tg_pt_gp *tg_pt_gp) > { > Index: lio-core/drivers/target/target_core_alua.h > =================================================================== > --- lio-core.orig/drivers/target/target_core_alua.h 2010-11-17 11:01:16.142255206 +0100 > +++ lio-core/drivers/target/target_core_alua.h 2010-11-17 22:25:25.592004262 +0100 > @@ -70,22 +70,13 @@ extern struct kmem_cache *t10_alua_tg_pt > > extern int core_emulate_report_target_port_groups(struct se_cmd *); > extern int core_emulate_set_target_port_groups(struct se_cmd *); > -extern int core_alua_check_transition(int, int *); > extern int core_alua_check_nonop_delay(struct se_cmd *); > -extern int core_alua_do_transition_tg_pt(struct t10_alua_tg_pt_gp *, > - struct se_port *, struct se_node_acl *, > - unsigned char *, int, int); > extern int core_alua_do_port_transition(struct t10_alua_tg_pt_gp *, > struct se_device *, struct se_port *, > struct se_node_acl *, int, int); > -extern int core_alua_set_tg_pt_secondary_state( > - struct t10_alua_tg_pt_gp_member *, struct se_port *, int, int); > -extern char *core_alua_dump_state(int); > extern char *core_alua_dump_status(int); > extern struct t10_alua_lu_gp *core_alua_allocate_lu_gp(const char *, int); > extern int core_alua_set_lu_gp_id(struct t10_alua_lu_gp *, u16); > -extern struct t10_alua_lu_gp_member *core_alua_allocate_lu_gp_mem( > - struct se_device *); > extern void core_alua_free_lu_gp(struct t10_alua_lu_gp *); > extern void core_alua_free_lu_gp_mem(struct se_device *); > extern struct t10_alua_lu_gp *core_alua_get_lu_gp_by_name(const char *); > @@ -102,13 +93,8 @@ extern struct t10_alua_tg_pt_gp_member * > struct se_port *); > extern void core_alua_free_tg_pt_gp(struct t10_alua_tg_pt_gp *); > extern void core_alua_free_tg_pt_gp_mem(struct se_port *); > -extern struct t10_alua_tg_pt_gp *core_alua_get_tg_pt_gp_by_name( > - struct se_subsystem_dev *, const char *); > -extern void core_alua_put_tg_pt_gp_from_name(struct t10_alua_tg_pt_gp *); > extern void __core_alua_attach_tg_pt_gp_mem(struct t10_alua_tg_pt_gp_member *, > struct t10_alua_tg_pt_gp *); > -extern void __core_alua_drop_tg_pt_gp_mem(struct t10_alua_tg_pt_gp_member *, > - struct t10_alua_tg_pt_gp *); > extern ssize_t core_alua_show_tg_pt_gp_info(struct se_port *, char *); > extern ssize_t core_alua_store_tg_pt_gp_info(struct se_port *, const char *, > size_t); > Index: lio-core/drivers/target/target_core_file.c > =================================================================== > --- lio-core.orig/drivers/target/target_core_file.c 2010-11-17 22:24:18.000000000 +0100 > +++ lio-core/drivers/target/target_core_file.c 2010-11-17 22:25:25.597003564 +0100 > @@ -432,12 +432,12 @@ static void fd_emulate_sync_cache(struct > * Tell TCM Core that we are capable of WriteCache emulation for > * an underlying struct se_device. > */ > -int fd_emulated_write_cache(struct se_device *dev) > +static int fd_emulated_write_cache(struct se_device *dev) > { > return 1; > } > > -int fd_emulated_dpo(struct se_device *dev) > +static int fd_emulated_dpo(struct se_device *dev) > { > return 0; > } > @@ -445,12 +445,12 @@ int fd_emulated_dpo(struct se_device *de > * Tell TCM Core that we will be emulating Forced Unit Access (FUA) for WRITEs > * for TYPE_DISK. > */ > -int fd_emulated_fua_write(struct se_device *dev) > +static int fd_emulated_fua_write(struct se_device *dev) > { > return 1; > } > > -int fd_emulated_fua_read(struct se_device *dev) > +static int fd_emulated_fua_read(struct se_device *dev) > { > return 0; > } > Index: lio-core/drivers/target/target_core_iblock.c > =================================================================== > --- lio-core.orig/drivers/target/target_core_iblock.c 2010-11-17 22:24:18.000000000 +0100 > +++ lio-core/drivers/target/target_core_iblock.c 2010-11-17 22:25:25.602004122 +0100 > @@ -379,12 +379,12 @@ static void iblock_emulate_sync_cache(st > * Tell TCM Core that we are capable of WriteCache emulation for > * an underlying struct se_device. > */ > -int iblock_emulated_write_cache(struct se_device *dev) > +static int iblock_emulated_write_cache(struct se_device *dev) > { > return 1; > } > > -int iblock_emulated_dpo(struct se_device *dev) > +static int iblock_emulated_dpo(struct se_device *dev) > { > return 0; > } > @@ -393,12 +393,12 @@ int iblock_emulated_dpo(struct se_device > * Tell TCM Core that we will be emulating Forced Unit Access (FUA) for WRITEs > * for TYPE_DISK. > */ > -int iblock_emulated_fua_write(struct se_device *dev) > +static int iblock_emulated_fua_write(struct se_device *dev) > { > return 1; > } > > -int iblock_emulated_fua_read(struct se_device *dev) > +static int iblock_emulated_fua_read(struct se_device *dev) > { > return 0; > } > Index: lio-core/drivers/target/target_core_mib.c > =================================================================== > --- lio-core.orig/drivers/target/target_core_mib.c 2010-11-17 11:01:16.189267149 +0100 > +++ lio-core/drivers/target/target_core_mib.c 2010-11-17 22:25:25.606004052 +0100 > @@ -48,7 +48,7 @@ > #include "target_core_mib.h" > > /* SCSI mib table index */ > -struct scsi_index_table scsi_index_table; > +static struct scsi_index_table scsi_index_table; > > #ifndef INITIAL_JIFFIES > #define INITIAL_JIFFIES ((unsigned long)(unsigned int) (-300*HZ)) > Index: lio-core/drivers/target/target_core_pr.c > =================================================================== > --- lio-core.orig/drivers/target/target_core_pr.c 2010-11-17 11:01:16.207265403 +0100 > +++ lio-core/drivers/target/target_core_pr.c 2010-11-17 22:25:25.612004332 +0100 > @@ -72,7 +72,7 @@ int core_pr_dump_initiator_port( > static void __core_scsi3_complete_pro_release(struct se_device *, struct se_node_acl *, > struct t10_pr_registration *, int); > > -int core_scsi2_reservation_seq_non_holder( > +static int core_scsi2_reservation_seq_non_holder( > struct se_cmd *cmd, > unsigned char *cdb, > u32 pr_reg_type) > Index: lio-core/drivers/target/target_core_tmr.c > =================================================================== > --- lio-core.orig/drivers/target/target_core_tmr.c 2010-11-17 11:01:16.223256114 +0100 > +++ lio-core/drivers/target/target_core_tmr.c 2010-11-17 22:25:25.620004052 +0100 > @@ -69,23 +69,14 @@ struct se_tmr_req *core_tmr_alloc_req( > } > EXPORT_SYMBOL(core_tmr_alloc_req); > > -/* > - * Called with struct se_device->se_tmr_lock held. > - */ > -void __core_tmr_release_req( > - struct se_tmr_req *tmr) > -{ > - list_del(&tmr->tmr_list); > - kmem_cache_free(se_tmr_req_cache, tmr); > -} > - > void core_tmr_release_req( > struct se_tmr_req *tmr) > { > struct se_device *dev = tmr->tmr_dev; > > spin_lock(&dev->se_tmr_lock); > - __core_tmr_release_req(tmr); > + list_del(&tmr->tmr_list); > + kmem_cache_free(se_tmr_req_cache, tmr); > spin_unlock(&dev->se_tmr_lock); > } > > Index: lio-core/drivers/target/target_core_configfs.c > =================================================================== > --- lio-core.orig/drivers/target/target_core_configfs.c 2010-11-17 11:01:16.239255695 +0100 > +++ lio-core/drivers/target/target_core_configfs.c 2010-11-17 22:25:25.626003564 +0100 > @@ -52,8 +52,8 @@ > #include "target_core_pr.h" > #include "target_core_rd.h" > > -struct list_head g_tf_list; > -struct mutex g_tf_lock; > +static struct list_head g_tf_list; > +static struct mutex g_tf_lock; > > struct target_core_configfs_attribute { > struct configfs_attribute attr; > @@ -61,7 +61,7 @@ struct target_core_configfs_attribute { > ssize_t (*store)(void *, const char *, size_t); > }; > > -struct se_hba *target_core_get_hba_from_item( > +static struct se_hba *target_core_get_hba_from_item( > struct config_item *item) > { > struct se_hba *hba = container_of(to_config_group(item), > @@ -368,25 +368,6 @@ void target_fabric_configfs_free( > EXPORT_SYMBOL(target_fabric_configfs_free); > > /* > - * Note that config_group_find_item() calls config_item_get() and grabs the > - * reference to the returned struct config_item * > - * It will be released with config_put_item() in > - * target_fabric_configfs_deregister() > - */ > -struct config_item *target_fabric_configfs_find_by_name( > - struct configfs_subsystem *target_su, > - const char *name) > -{ > - struct config_item *fabric; > - > - mutex_lock(&target_su->su_mutex); > - fabric = config_group_find_item(&target_su->su_group, name); > - mutex_unlock(&target_su->su_mutex); > - > - return fabric; > -} > - > -/* > * Perform a sanity check of the passed tf->tf_ops before completing > * TCM fabric module registration. > */ > @@ -3228,7 +3209,7 @@ static struct config_item_type target_co > > /* Stop functions for struct config_item_type target_core_hba_cit */ > > -int target_core_init_configfs(void) > +static int target_core_init_configfs(void) > { > struct config_group *target_cg, *hba_cg = NULL, *alua_cg = NULL; > struct config_group *lu_gp_cg = NULL; > @@ -3372,7 +3353,7 @@ out_global: > return -1; > } > > -void target_core_exit_configfs(void) > +static void target_core_exit_configfs(void) > { > struct configfs_subsystem *subsys; > struct config_group *hba_cg, *alua_cg, *lu_gp_cg; > Index: lio-core/drivers/target/target_core_device.c > =================================================================== > --- lio-core.orig/drivers/target/target_core_device.c 2010-11-17 11:01:16.255255625 +0100 > +++ lio-core/drivers/target/target_core_device.c 2010-11-17 22:25:25.631003633 +0100 > @@ -51,8 +51,12 @@ > #include "target_core_pr.h" > #include "target_core_ua.h" > > -extern int __transport_get_lun_for_cmd( > +static void se_dev_start(struct se_device *dev); > +static void se_dev_stop(struct se_device *dev); > + > +int transport_get_lun_for_cmd( > struct se_cmd *se_cmd, > + unsigned char *cdb, > u32 unpacked_lun) > { > struct se_dev_entry *deve; > @@ -171,8 +175,9 @@ out: > > return 0; > } > +EXPORT_SYMBOL(transport_get_lun_for_cmd); > > -extern int transport_get_lun_for_tmr( > +int transport_get_lun_for_tmr( > struct se_cmd *se_cmd, > u32 unpacked_lun) > { > @@ -484,7 +489,7 @@ void core_clear_lun_from_tpg(struct se_l > return; > } > > -struct se_port *core_alloc_port(struct se_device *dev) > +static struct se_port *core_alloc_port(struct se_device *dev) > { > struct se_port *port, *port_tmp; > > @@ -536,7 +541,7 @@ again: > return port; > } > > -void core_export_port( > +static void core_export_port( > struct se_device *dev, > struct se_portal_group *tpg, > struct se_port *port, > @@ -578,7 +583,7 @@ void core_export_port( > /* > * Called with struct se_device->se_port_lock spinlock held. > */ > -void core_release_port(struct se_device *dev, struct se_port *port) > +static void core_release_port(struct se_device *dev, struct se_port *port) > { > /* > * Wait for any port reference for PR ALL_TG_PT=1 operation > @@ -769,15 +774,6 @@ void se_release_vpd_for_dev(struct se_de > return; > } > > -int transport_get_lun_for_cmd( > - struct se_cmd *se_cmd, > - unsigned char *cdb, > - u32 unpacked_lun) > -{ > - return __transport_get_lun_for_cmd(se_cmd, unpacked_lun); > -} > -EXPORT_SYMBOL(transport_get_lun_for_cmd); > - > /* > * Called with struct se_hba->device_lock held. > */ > @@ -828,7 +824,7 @@ int se_free_virtual_device(struct se_dev > return 0; > } > > -void se_dev_start(struct se_device *dev) > +static void se_dev_start(struct se_device *dev) > { > struct se_hba *hba = dev->se_hba; > > @@ -848,7 +844,7 @@ void se_dev_start(struct se_device *dev) > spin_unlock(&hba->device_lock); > } > > -void se_dev_stop(struct se_device *dev) > +static void se_dev_stop(struct se_device *dev) > { > struct se_hba *hba = dev->se_hba; > > Index: lio-core/include/target/target_core_configfs.h > =================================================================== > --- lio-core.orig/include/target/target_core_configfs.h 2010-11-17 11:01:16.311006149 +0100 > +++ lio-core/include/target/target_core_configfs.h 2010-11-17 22:25:25.634003145 +0100 > @@ -7,14 +7,11 @@ > > extern struct se_global *se_global; > > -extern struct se_hba *target_core_get_hba_from_item(struct config_item *); > extern struct target_fabric_configfs *target_fabric_configfs_init( > struct module *, const char *); > extern void target_fabric_configfs_free(struct target_fabric_configfs *); > extern int target_fabric_configfs_register(struct target_fabric_configfs *); > extern void target_fabric_configfs_deregister(struct target_fabric_configfs *); > -extern int target_core_init_configfs(void); > -extern void target_core_exit_configfs(void); > > struct target_fabric_configfs_template { > struct config_item_type tfc_discovery_cit; > Index: lio-core/include/target/target_core_device.h > =================================================================== > --- lio-core.orig/include/target/target_core_device.h 2010-11-17 11:01:16.330256882 +0100 > +++ lio-core/include/target/target_core_device.h 2010-11-17 22:25:25.638004052 +0100 > @@ -15,10 +15,6 @@ extern int core_update_device_list_for_n > u32, struct se_node_acl *, > struct se_portal_group *, int); > extern void core_clear_lun_from_tpg(struct se_lun *, struct se_portal_group *); > -extern struct se_port *core_alloc_port(struct se_device *); > -extern void core_export_port(struct se_device *, struct se_portal_group *, > - struct se_port *, struct se_lun *); > -extern void core_release_port(struct se_device *, struct se_port *); > extern int core_dev_export(struct se_device *, struct se_portal_group *, > struct se_lun *); > extern void core_dev_unexport(struct se_device *, struct se_portal_group *, > @@ -28,8 +24,6 @@ extern void se_release_device_for_hba(st > extern void se_release_vpd_for_dev(struct se_device *); > extern void se_clear_dev_ports(struct se_device *); > extern int se_free_virtual_device(struct se_device *, struct se_hba *); > -extern void se_dev_start(struct se_device *); > -extern void se_dev_stop(struct se_device *); > extern int se_dev_check_online(struct se_device *); > extern int se_dev_check_shutdown(struct se_device *); > extern void se_dev_set_default_attribs(struct se_device *, struct se_dev_limits *); > Index: lio-core/drivers/target/target_core_tpg.c > =================================================================== > --- lio-core.orig/drivers/target/target_core_tpg.c 2010-11-17 11:01:16.275005591 +0100 > +++ lio-core/drivers/target/target_core_tpg.c 2010-11-17 22:25:25.643003145 +0100 > @@ -771,7 +771,7 @@ int core_tpg_post_addlun( > return 0; > } > > -void core_tpg_shutdown_lun( > +static void core_tpg_shutdown_lun( > struct se_portal_group *tpg, > struct se_lun *lun) > { > Index: lio-core/drivers/target/target_core_transport.c > =================================================================== > --- lio-core.orig/drivers/target/target_core_transport.c 2010-11-17 22:25:24.576003983 +0100 > +++ lio-core/drivers/target/target_core_transport.c 2010-11-17 22:25:25.646003145 +0100 > @@ -188,9 +188,9 @@ > struct se_global *se_global; > EXPORT_SYMBOL(se_global); > > -struct kmem_cache *se_cmd_cache; > +static struct kmem_cache *se_cmd_cache; > +static struct kmem_cache *se_sess_cache; > struct kmem_cache *se_tmr_req_cache; > -struct kmem_cache *se_sess_cache; > struct kmem_cache *se_hba_cache; > struct kmem_cache *se_ua_cache; > struct kmem_cache *se_mem_cache; > @@ -207,6 +207,32 @@ static int transport_generic_write_pendi > static int transport_processing_thread(void *); > static int transport_new_cmd_obj(struct se_cmd *cmd, > struct se_transform_info *ti, int post_execute); > +static int __transport_execute_tasks(struct se_device *dev); > +static void transport_complete_task_attr(struct se_cmd *cmd); > +static void transport_direct_request_timeout(struct se_cmd *cmd); > +static void transport_free_dev_tasks(struct se_cmd *cmd); > +static u32 transport_generic_get_cdb_count( > + struct se_cmd *cmd, struct se_transform_info *ti, > + unsigned long long starting_lba, u32 sectors, > + enum dma_data_direction data_direction, > + struct list_head *mem_list); > +static int transport_generic_get_mem(struct se_cmd *cmd, u32 length, > + u32 dma_size); > +static int transport_generic_remove(struct se_cmd *cmd, > + int release_to_pool, int session_reinstatement); > +static int transport_get_sectors(struct se_cmd *cmd); > +static struct list_head *transport_init_se_mem_list(void); > +static int transport_map_sg_to_mem(struct se_cmd *cmd, > + struct list_head *se_mem_list, void *in_mem, > + u32 *se_mem_cnt); > +static void transport_memcpy_se_mem_read_contig(struct se_cmd *cmd, > + unsigned char *dst, struct list_head *se_mem_list); > +static void transport_new_cmd_failure(struct se_cmd *se_cmd); > +static void transport_release_fe_cmd(struct se_cmd *cmd); > +static void transport_remove_cmd_from_queue(struct se_cmd *cmd, > + struct se_queue_obj *qobj); > +static int transport_set_sense_codes(struct se_cmd *cmd, u8 asc, u8 ascq); > +static void transport_stop_all_task_timers(struct se_cmd *cmd); > > int transport_emulate_control_cdb(struct se_task *task); > > @@ -242,7 +268,7 @@ static u16 transport_passthrough_get_fab > return 0; > } > > -struct target_core_fabric_ops passthrough_fabric_ops = { > +static struct target_core_fabric_ops passthrough_fabric_ops = { > .release_cmd_direct = transport_passthrough_release_cmd_direct, > .get_fabric_name = transport_passthrough_get_fabric_name, > .get_task_tag = transport_passthrough_get_task_tag, > @@ -717,57 +743,10 @@ static void transport_all_task_dev_remov > } > } > > -/* > - * Called with T_TASK(cmd)->t_state_lock held. > - */ > -void transport_task_dev_remove_state(struct se_task *task, struct se_device *dev) > -{ > - struct se_cmd *cmd = task->task_se_cmd; > - unsigned long flags; > - > - /* > - * We cannot remove the task from the state list while said task is > - * still active and probably timed out. > - */ > - if (atomic_read(&task->task_active)) { > -#if 0 > - printk(KERN_ERR "Skipping Removal of state for ITT: 0x%08x" > - " dev: %p task[%p]\n" > - CMD_TFO(task->task_se_cmd)->tfo_get_task_tag( > - task->task_se_cmd), dev, task); > -#endif > - return; > - } > - > - if (atomic_read(&task->task_state_active)) { > - spin_lock_irqsave(&dev->execute_task_lock, flags); > - list_del(&task->t_state_list); > - DEBUG_TSTATE("Removed ITT: 0x%08x dev: %p task[%p]\n", > - CMD_TFO(task->task_se_cmd)->tfo_get_task_tag( > - task->task_se_cmd), dev, task); > - spin_unlock_irqrestore(&dev->execute_task_lock, flags); > - > - atomic_set(&task->task_state_active, 0); > - atomic_dec(&T_TASK(cmd)->t_task_cdbs_ex_left); > - } > -} > - > static void transport_passthrough_check_stop(struct se_cmd *cmd) > { > - if (!(cmd->se_cmd_flags & SCF_CMD_PASSTHROUGH)) > - return; > - > - if (!cmd->transport_passthrough_done) { > - if (cmd->callback) { > - cmd->callback(cmd, cmd->callback_arg, > - transport_passthrough_complete(cmd)); > - } else > - complete(&T_TASK(cmd)->t_transport_passthrough_comp); > - > - return; > - } > - > - cmd->transport_passthrough_done(cmd); > + if (cmd->se_cmd_flags & SCF_CMD_PASSTHROUGH) > + complete(&T_TASK(cmd)->t_transport_passthrough_comp); > } > > /* transport_cmd_check_stop(): > @@ -927,7 +906,7 @@ void transport_cmd_finish_abort_tmr(stru > transport_generic_remove(cmd, 0, 0); > } > > -int transport_add_cmd_to_queue( > +static int transport_add_cmd_to_queue( > struct se_cmd *cmd, > int t_state) > { > @@ -967,7 +946,8 @@ int transport_add_cmd_to_queue( > /* > * Called with struct se_queue_obj->cmd_queue_lock held. > */ > -struct se_queue_req *__transport_get_qr_from_queue(struct se_queue_obj *qobj) > +static struct se_queue_req * > +__transport_get_qr_from_queue(struct se_queue_obj *qobj) > { > struct se_cmd *cmd; > struct se_queue_req *qr = NULL; > @@ -988,7 +968,8 @@ struct se_queue_req *__transport_get_qr_ > return qr; > } > > -struct se_queue_req *transport_get_qr_from_queue(struct se_queue_obj *qobj) > +static struct se_queue_req * > +transport_get_qr_from_queue(struct se_queue_obj *qobj) > { > struct se_cmd *cmd; > struct se_queue_req *qr; > @@ -1014,7 +995,8 @@ struct se_queue_req *transport_get_qr_fr > return qr; > } > > -void transport_remove_cmd_from_queue(struct se_cmd *cmd, struct se_queue_obj *qobj) > +static void transport_remove_cmd_from_queue(struct se_cmd *cmd, > + struct se_queue_obj *qobj) > { > struct se_cmd *q_cmd; > struct se_queue_req *qr = NULL, *qr_p = NULL; > @@ -1045,24 +1027,6 @@ void transport_remove_cmd_from_queue(str > } > } > > -void transport_complete_cmd(struct se_cmd *cmd, int success) > -{ > - int t_state; > - unsigned long flags; > - > - spin_lock_irqsave(&T_TASK(cmd)->t_state_lock, flags); > - if (!success) { > - cmd->transport_error_status = PYX_TRANSPORT_LU_COMM_FAILURE; > - t_state = TRANSPORT_COMPLETE_FAILURE; > - } else { > - t_state = TRANSPORT_COMPLETE_OK; > - } > - atomic_set(&T_TASK(cmd)->t_transport_complete, 1); > - spin_unlock_irqrestore(&T_TASK(cmd)->t_state_lock, flags); > - > - transport_add_cmd_to_queue(cmd, t_state); > -} > - > /* > * Completion function used by TCM subsystem plugins (such as FILEIO) > * for queueing up response from struct se_subsystem_api->do_task() > @@ -1302,11 +1266,7 @@ static void transport_add_tasks_to_state > spin_unlock_irqrestore(&T_TASK(cmd)->t_state_lock, flags); > } > > -/* transport_add_tasks_from_cmd(): > - * > - * > - */ > -void transport_add_tasks_from_cmd(struct se_cmd *cmd) > +static void transport_add_tasks_from_cmd(struct se_cmd *cmd) > { > struct se_device *dev = SE_DEV(cmd); > struct se_task *task, *task_prev = NULL; > @@ -1620,7 +1580,8 @@ void transport_dump_vpd_proto_id( > printk(KERN_INFO "%s", buf); > } > > -void transport_set_vpd_proto_id(struct t10_vpd *vpd, unsigned char *page_83) > +static void > +transport_set_vpd_proto_id(struct t10_vpd *vpd, unsigned char *page_83) > { > /* > * Check if the Protocol Identifier Valid (PIV) bit is set.. > @@ -1725,7 +1686,8 @@ int transport_dump_vpd_ident_type( > return ret; > } > > -int transport_set_vpd_ident_type(struct t10_vpd *vpd, unsigned char *page_83) > +static int > +transport_set_vpd_ident_type(struct t10_vpd *vpd, unsigned char *page_83) > { > /* > * The VPD identifier type.. > @@ -1774,7 +1736,8 @@ int transport_dump_vpd_ident( > return ret; > } > > -int transport_set_vpd_ident(struct t10_vpd *vpd, unsigned char *page_83) > +static int > +transport_set_vpd_ident(struct t10_vpd *vpd, unsigned char *page_83) > { > int j = 0, i = 4; /* offset to start of the identifer */ > > @@ -2266,13 +2229,8 @@ void transport_device_setup_cmd(struct s > } > EXPORT_SYMBOL(transport_device_setup_cmd); > > -struct se_cmd *__transport_alloc_se_cmd( > - struct target_core_fabric_ops *tfo, > - struct se_session *se_sess, > - void *fabric_cmd_ptr, > - u32 data_length, > - int data_direction, > - int task_attr) > +static struct se_cmd * > +transport_alloc_passthrough_cmd(u32 data_length, int data_direction) > { > struct se_cmd *cmd; > unsigned char *sense_buffer; > @@ -2284,10 +2242,9 @@ struct se_cmd *__transport_alloc_se_cmd( > return ERR_PTR(-ENOMEM); > } > > - sense_buffer = kzalloc( > - TRANSPORT_SENSE_BUFFER + tfo->get_fabric_sense_len(), > - gfp_type); > - if (!(sense_buffer)) { > + sense_buffer = kzalloc(TRANSPORT_SENSE_BUFFER + > + passthrough_fabric_ops.get_fabric_sense_len(), gfp_type); > + if (!sense_buffer) { > printk(KERN_ERR "Unable to allocate memory for" > " cmd->sense_buffer\n"); > kmem_cache_free(se_cmd_cache, cmd); > @@ -2296,13 +2253,14 @@ struct se_cmd *__transport_alloc_se_cmd( > /* > * Initialize the new struct se_cmd descriptor > */ > - transport_init_se_cmd(cmd, tfo, se_sess, data_length, data_direction, > - task_attr, sense_buffer); > + transport_init_se_cmd(cmd, &passthrough_fabric_ops, NULL, > + data_length, data_direction, > + TASK_ATTR_SIMPLE, sense_buffer); > /* > * Setup the se_fabric_cmd_ptr assignment which will signal > * TCM allocation of struct se_cmd in the release and free codepaths > */ > - cmd->se_fabric_cmd_ptr = fabric_cmd_ptr; > + cmd->se_fabric_cmd_ptr = (void *)1; > return cmd; > } > > @@ -2345,7 +2303,7 @@ void transport_init_se_cmd( > } > EXPORT_SYMBOL(transport_init_se_cmd); > > -int transport_check_alloc_task_attr(struct se_cmd *cmd) > +static int transport_check_alloc_task_attr(struct se_cmd *cmd) > { > /* > * Check if SAM Task Attribute emulation is enabled for this > @@ -2371,19 +2329,6 @@ int transport_check_alloc_task_attr(stru > return 0; > } > > -struct se_cmd *transport_alloc_se_cmd( > - struct target_core_fabric_ops *tfo_api, > - struct se_session *se_sess, > - void *fabric_cmd_ptr, > - u32 data_length, > - int data_direction, > - int task_attr) > -{ > - return __transport_alloc_se_cmd(tfo_api, se_sess, fabric_cmd_ptr, > - data_length, data_direction, task_attr); > -} > -EXPORT_SYMBOL(transport_alloc_se_cmd); > - > void transport_free_se_cmd( > struct se_cmd *se_cmd) > { > @@ -2651,11 +2596,7 @@ int transport_generic_handle_tmr( > } > EXPORT_SYMBOL(transport_generic_handle_tmr); > > -/* transport_stop_tasks_for_cmd(): > - * > - * > - */ > -int transport_stop_tasks_for_cmd(struct se_cmd *cmd) > +static int transport_stop_tasks_for_cmd(struct se_cmd *cmd) > { > struct se_task *task, *task_tmp; > unsigned long flags; > @@ -2731,11 +2672,10 @@ static void transport_failure_reset_queu > spin_unlock_irqrestore(&SE_HBA(dev)->hba_queue_lock, flags); > } > > -/* transport_generic_request_failure(): > - * > - * Handle SAM-esque emulation for generic transport request failures. > +/* > + * Handle SAM-esque emulation for generic transport request failures. > */ > -void transport_generic_request_failure( > +static void transport_generic_request_failure( > struct se_cmd *cmd, > struct se_device *dev, > int complete, > @@ -2865,7 +2805,7 @@ check_stop: > transport_passthrough_check_stop(cmd); > } > > -void transport_direct_request_timeout(struct se_cmd *cmd) > +static void transport_direct_request_timeout(struct se_cmd *cmd) > { > unsigned long flags; > > @@ -2884,7 +2824,7 @@ void transport_direct_request_timeout(st > spin_unlock_irqrestore(&T_TASK(cmd)->t_state_lock, flags); > } > > -void transport_generic_request_timeout(struct se_cmd *cmd) > +static void transport_generic_request_timeout(struct se_cmd *cmd) > { > unsigned long flags; > > @@ -2953,11 +2893,7 @@ static inline unsigned long long transpo > return ((unsigned long long)__v2) | (unsigned long long)__v1 << 32; > } > > -/* transport_set_supported_SAM_opcode(): > - * > - * > - */ > -void transport_set_supported_SAM_opcode(struct se_cmd *se_cmd) > +static void transport_set_supported_SAM_opcode(struct se_cmd *se_cmd) > { > unsigned long flags; > > @@ -2969,7 +2905,7 @@ void transport_set_supported_SAM_opcode( > /* > * Called from interrupt context. > */ > -void transport_task_timeout_handler(unsigned long data) > +static void transport_task_timeout_handler(unsigned long data) > { > struct se_task *task = (struct se_task *)data; > struct se_cmd *cmd = TASK_CMD(task); > @@ -3028,7 +2964,7 @@ void transport_task_timeout_handler(unsi > /* > * Called with T_TASK(cmd)->t_state_lock held. > */ > -void transport_start_task_timer(struct se_task *task) > +static void transport_start_task_timer(struct se_task *task) > { > struct se_device *dev = task->se_obj_ptr; > int timeout; > @@ -3075,31 +3011,7 @@ void __transport_stop_task_timer(struct > task->task_flags &= ~TF_STOP; > } > > -void transport_stop_task_timer(struct se_task *task) > -{ > - struct se_cmd *cmd = TASK_CMD(task); > - unsigned long flags; > -#if 0 > - printk(KERN_INFO "Stopping task timer for cmd: %p task: %p\n", > - cmd, task); > -#endif > - spin_lock_irqsave(&T_TASK(cmd)->t_state_lock, flags); > - if (!(task->task_flags & TF_RUNNING)) { > - spin_unlock_irqrestore(&T_TASK(cmd)->t_state_lock, flags); > - return; > - } > - task->task_flags |= TF_STOP; > - spin_unlock_irqrestore(&T_TASK(cmd)->t_state_lock, flags); > - > - del_timer_sync(&task->task_timer); > - > - spin_lock_irqsave(&T_TASK(cmd)->t_state_lock, flags); > - task->task_flags &= ~TF_RUNNING; > - task->task_flags &= ~TF_STOP; > - spin_unlock_irqrestore(&T_TASK(cmd)->t_state_lock, flags); > -} > - > -void transport_stop_all_task_timers(struct se_cmd *cmd) > +static void transport_stop_all_task_timers(struct se_cmd *cmd) > { > struct se_task *task = NULL, *task_tmp; > unsigned long flags; > @@ -3209,7 +3121,7 @@ static inline int transport_execute_task > * Called from fabric module context in transport_generic_new_cmd() and > * transport_generic_process_write() > */ > -int transport_execute_tasks(struct se_cmd *cmd) > +static int transport_execute_tasks(struct se_cmd *cmd) > { > int add_tasks; > > @@ -3256,7 +3168,7 @@ execute_tasks: > * > * Called from transport_processing_thread() > */ > -int __transport_execute_tasks(struct se_device *dev) > +static int __transport_execute_tasks(struct se_device *dev) > { > int error; > struct se_cmd *cmd = NULL; > @@ -3359,11 +3271,7 @@ check_depth: > return 0; > } > > -/* transport_new_cmd_failure(): > - * > - * > - */ > -void transport_new_cmd_failure(struct se_cmd *se_cmd) > +static void transport_new_cmd_failure(struct se_cmd *se_cmd) > { > unsigned long flags; > /* > @@ -3611,7 +3519,7 @@ out: > /* > * Used to obtain Sense Data from underlying Linux/SCSI struct scsi_cmnd > */ > -int transport_get_sense_data(struct se_cmd *cmd) > +static int transport_get_sense_data(struct se_cmd *cmd) > { > unsigned char *buffer = cmd->sense_buffer, *sense_buffer = NULL; > struct se_device *dev; > @@ -4283,14 +4191,6 @@ static int transport_generic_cmd_sequenc > return ret; > } > > -static inline struct se_cmd *transport_alloc_passthrough_cmd( > - u32 data_length, > - int data_direction) > -{ > - return __transport_alloc_se_cmd(&passthrough_fabric_ops, NULL, > - (void *)1, data_length, data_direction, TASK_ATTR_SIMPLE); > -} > - > static inline void transport_release_tasks(struct se_cmd *); > > struct se_cmd *transport_allocate_passthrough( > @@ -4421,7 +4321,7 @@ void transport_passthrough_release( > } > EXPORT_SYMBOL(transport_passthrough_release); > > -int transport_passthrough_complete( > +static int transport_passthrough_complete( > struct se_cmd *cmd) > { > if (se_dev_check_shutdown(cmd->se_orig_obj_ptr) != 0) > @@ -4503,7 +4403,7 @@ static void transport_memcpy_read_contig > } > } > > -void transport_memcpy_se_mem_read_contig( > +static void transport_memcpy_se_mem_read_contig( > struct se_cmd *cmd, > unsigned char *dst, > struct list_head *se_mem_list) > @@ -4529,25 +4429,10 @@ void transport_memcpy_se_mem_read_contig > } > } > > - > -/* transport_generic_passthrough(): > - * > - * > - */ > -int transport_generic_passthrough_async( > - struct se_cmd *cmd, > - void (*callback)(struct se_cmd *cmd, > - void *callback_arg, int complete_status), > - void *callback_arg) > +int transport_generic_passthrough(struct se_cmd *cmd) > { > int write = (cmd->data_direction == DMA_TO_DEVICE); > int no_alloc = (cmd->se_cmd_flags & SCF_CMD_PASSTHROUGH_NOALLOC); > - int pt_done = (cmd->transport_passthrough_done != NULL); > - > - if (callback) { > - cmd->callback = callback; > - cmd->callback_arg = callback_arg; > - } > > if (transport_generic_handle_cdb(cmd) < 0) > return -1; > @@ -4560,18 +4445,10 @@ int transport_generic_passthrough_async( > transport_generic_process_write(cmd); > } > > - if (callback || pt_done) > - return 0; > - > wait_for_completion(&T_TASK(cmd)->t_transport_passthrough_comp); > > return transport_passthrough_complete(cmd); > } > - > -int transport_generic_passthrough(struct se_cmd *cmd) > -{ > - return transport_generic_passthrough_async(cmd, NULL, NULL); > -} > EXPORT_SYMBOL(transport_generic_passthrough); > > /* > @@ -4579,7 +4456,7 @@ EXPORT_SYMBOL(transport_generic_passthro > * transport_generic_request_failure() to determine which dormant/delayed > * and ordered cmds need to have their tasks added to the execution queue. > */ > -void transport_complete_task_attr(struct se_cmd *cmd) > +static void transport_complete_task_attr(struct se_cmd *cmd) > { > struct se_device *dev = SE_DEV(cmd); > struct se_cmd *cmd_p, *cmd_tmp; > @@ -4644,11 +4521,7 @@ void transport_complete_task_attr(struct > wake_up_interruptible(&dev->dev_queue_obj->thread_wq); > } > > -/* transport_generic_complete_ok(): > - * > - * > - */ > -void transport_generic_complete_ok(struct se_cmd *cmd) > +static void transport_generic_complete_ok(struct se_cmd *cmd) > { > int reason = 0; > /* > @@ -4742,7 +4615,7 @@ void transport_generic_complete_ok(struc > transport_cmd_check_stop_to_fabric(cmd); > } > > -void transport_free_dev_tasks(struct se_cmd *cmd) > +static void transport_free_dev_tasks(struct se_cmd *cmd) > { > struct se_task *task, *task_tmp; > unsigned long flags; > @@ -4875,7 +4748,7 @@ static inline void transport_release_se_ > } > } > > -void transport_release_fe_cmd(struct se_cmd *cmd) > +static void transport_release_fe_cmd(struct se_cmd *cmd) > { > unsigned long flags; > > @@ -4901,11 +4774,7 @@ free_pages: > transport_release_se_cmd(cmd); > } > > -/* transport_generic_remove(): > - * > - * > - */ > -int transport_generic_remove( > +static int transport_generic_remove( > struct se_cmd *cmd, > int release_to_pool, > int session_reinstatement) > @@ -5063,7 +4932,7 @@ static inline long long transport_dev_en > return dev->dev_sectors_total + 1; > } > > -int transport_get_sectors(struct se_cmd *cmd) > +static int transport_get_sectors(struct se_cmd *cmd) > { > struct se_device *dev = SE_DEV(cmd); > > @@ -5159,12 +5028,7 @@ static int transport_new_cmd_obj( > return 0; > } > > -unsigned char *transport_get_vaddr(struct se_mem *se_mem) > -{ > - return page_address(se_mem->se_page) + se_mem->se_off; > -} > - > -struct list_head *transport_init_se_mem_list(void) > +static struct list_head *transport_init_se_mem_list(void) > { > struct list_head *se_mem_list; > > @@ -5178,21 +5042,8 @@ struct list_head *transport_init_se_mem_ > return se_mem_list; > } > > -void transport_free_se_mem_list(struct list_head *se_mem_list) > -{ > - struct se_mem *se_mem, *se_mem_tmp; > - > - if (!se_mem_list) > - return; > - > - list_for_each_entry_safe(se_mem, se_mem_tmp, se_mem_list, se_list) { > - list_del(&se_mem->se_list); > - kmem_cache_free(se_mem_cache, se_mem); > - } > - kfree(se_mem_list); > -} > - > -int transport_generic_get_mem(struct se_cmd *cmd, u32 length, u32 dma_size) > +static int > +transport_generic_get_mem(struct se_cmd *cmd, u32 length, u32 dma_size) > { > unsigned char *buf; > struct se_mem *se_mem; > @@ -5432,7 +5283,7 @@ static inline int transport_set_tasks_se > max_sectors_set); > } > > -int transport_map_sg_to_mem( > +static int transport_map_sg_to_mem( > struct se_cmd *cmd, > struct list_head *se_mem_list, > void *in_mem, > @@ -5748,7 +5599,7 @@ static int transport_do_se_mem_map( > task_offset_in); > } > > -u32 transport_generic_get_cdb_count( > +static u32 transport_generic_get_cdb_count( > struct se_cmd *cmd, > struct se_transform_info *ti, > unsigned long long starting_lba, > @@ -5944,7 +5795,7 @@ transport_map_control_cmd_to_task(struct > * by transport_generic_cmd_sequencer() from the iSCSI Target RX process. > * Any non zero return here is treated as an "out of resource' op here. > */ > -int transport_generic_new_cmd(struct se_cmd *cmd) > +static int transport_generic_new_cmd(struct se_cmd *cmd) > { > struct se_portal_group *se_tpg; > struct se_transform_info ti; > @@ -6501,7 +6352,7 @@ remove: > transport_generic_free_cmd(cmd, 0, 0, session_reinstatement); > } > > -int transport_get_sense_codes( > +static int transport_get_sense_codes( > struct se_cmd *cmd, > u8 *asc, > u8 *ascq) > @@ -6512,7 +6363,7 @@ int transport_get_sense_codes( > return 0; > } > > -int transport_set_sense_codes( > +static int transport_set_sense_codes( > struct se_cmd *cmd, > u8 asc, > u8 ascq) > @@ -6804,7 +6655,8 @@ int transport_generic_do_tmr(struct se_c > * Called with spin_lock_irq(&dev->execute_task_lock); held > * > */ > -struct se_task *transport_get_task_from_state_list(struct se_device *dev) > +static struct se_task * > +transport_get_task_from_state_list(struct se_device *dev) > { > struct se_task *task; > > Index: lio-core/include/target/target_core_base.h > =================================================================== > --- lio-core.orig/include/target/target_core_base.h 2010-11-17 22:25:24.577004053 +0100 > +++ lio-core/include/target/target_core_base.h 2010-11-17 22:25:25.653003843 +0100 > @@ -576,13 +576,9 @@ struct se_cmd { > int (*transport_emulate_cdb)(struct se_cmd *); > u32 (*transport_get_lba)(unsigned char *); > unsigned long long (*transport_get_long_lba)(unsigned char *); > - void (*transport_passthrough_done)(struct se_cmd *); > void (*transport_split_cdb)(unsigned long long, u32 *, unsigned char *); > void (*transport_wait_for_tasks)(struct se_cmd *, int, int); > void (*transport_complete_callback)(struct se_cmd *); > - void (*callback)(struct se_cmd *cmd, void *callback_arg, > - int complete_status); > - void *callback_arg; > } ____cacheline_aligned; > > #define T_TASK(cmd) ((struct se_transport_task *)(cmd->t_task)) > Index: lio-core/include/target/target_core_tpg.h > =================================================================== > --- lio-core.orig/include/target/target_core_tpg.h 2010-11-17 11:01:16.362265822 +0100 > +++ lio-core/include/target/target_core_tpg.h 2010-11-17 22:25:25.659003913 +0100 > @@ -31,8 +31,6 @@ extern int core_tpg_deregister(struct se > extern struct se_lun *core_tpg_pre_addlun(struct se_portal_group *, u32); > extern int core_tpg_post_addlun(struct se_portal_group *, struct se_lun *, u32, > void *); > -extern void core_tpg_shutdown_lun(struct se_portal_group *, > - struct se_lun *); > extern struct se_lun *core_tpg_pre_dellun(struct se_portal_group *, u32, int *); > extern int core_tpg_post_dellun(struct se_portal_group *, struct se_lun *); > > Index: lio-core/include/target/target_core_transport.h > =================================================================== > --- lio-core.orig/include/target/target_core_transport.h 2010-11-17 22:24:18.000000000 +0100 > +++ lio-core/include/target/target_core_transport.h 2010-11-17 22:25:25.664003284 +0100 > @@ -142,23 +142,13 @@ extern void transport_register_session(s > extern void transport_free_session(struct se_session *); > extern void transport_deregister_session_configfs(struct se_session *); > extern void transport_deregister_session(struct se_session *); > -extern void transport_task_dev_remove_state(struct se_task *, > - struct se_device *); > extern void transport_cmd_finish_abort(struct se_cmd *, int); > extern void transport_cmd_finish_abort_tmr(struct se_cmd *); > -extern int transport_add_cmd_to_queue(struct se_cmd *, int); > -extern struct se_queue_req *__transport_get_qr_from_queue( > - struct se_queue_obj *); > -extern void transport_remove_cmd_from_queue(struct se_cmd *, > - struct se_queue_obj *); > extern void transport_complete_sync_cache(struct se_cmd *, int); > -extern void transport_complete_cmd(struct se_cmd *, int); > extern void transport_complete_task(struct se_task *, int); > extern void transport_add_task_to_execute_queue(struct se_task *, > struct se_task *, > struct se_device *); > -extern void transport_add_tasks_from_cmd(struct se_cmd *); > -extern struct se_queue_req *transport_get_qr_from_queue(struct se_queue_obj *); > unsigned char *transport_dump_cmd_direction(struct se_cmd *); > extern void transport_dump_dev_state(struct se_device *, char *, int *); > extern void transport_dump_dev_info(struct se_device *, struct se_lun *, > @@ -179,10 +169,6 @@ extern struct se_device *transport_add_d > const char *, const char *); > extern int transport_generic_allocate_iovecs(struct se_cmd *); > extern void transport_device_setup_cmd(struct se_cmd *); > -extern int transport_check_alloc_task_attr(struct se_cmd *); > -extern struct se_cmd *transport_alloc_se_cmd(struct target_core_fabric_ops *, > - struct se_session *, void *, > - u32, int, int); > extern void transport_init_se_cmd(struct se_cmd *, > struct target_core_fabric_ops *, > struct se_session *, u32, int, int, > @@ -193,66 +179,26 @@ extern int transport_generic_handle_cdb( > extern int transport_generic_handle_cdb_map(struct se_cmd *); > extern int transport_generic_handle_data(struct se_cmd *); > extern int transport_generic_handle_tmr(struct se_cmd *); > -extern int transport_stop_tasks_for_cmd(struct se_cmd *); > -extern void transport_generic_request_failure(struct se_cmd *, struct se_device *, > - int, int); > -extern void transport_direct_request_timeout(struct se_cmd *); > -extern void transport_generic_request_timeout(struct se_cmd *); > -extern int __transport_execute_tasks(struct se_device *); > -extern void transport_new_cmd_failure(struct se_cmd *); > -extern void transport_set_supported_SAM_opcode(struct se_cmd *); > -extern void transport_start_task_timer(struct se_task *); > extern void __transport_stop_task_timer(struct se_task *, unsigned long *); > -extern void transport_stop_task_timer(struct se_task *); > -extern void transport_stop_all_task_timers(struct se_cmd *); > -extern int transport_execute_tasks(struct se_cmd *); > extern unsigned char transport_asciihex_to_binaryhex(unsigned char val[2]); > -extern int transport_get_sense_data(struct se_cmd *); > extern struct se_cmd *transport_allocate_passthrough(unsigned char *, int, u32, > void *, u32, u32, void *); > extern void transport_passthrough_release(struct se_cmd *); > -extern int transport_passthrough_complete(struct se_cmd *); > -extern void transport_memcpy_se_mem_read_contig(struct se_cmd *, > - unsigned char *, struct list_head *); > -extern int transport_generic_passthrough_async(struct se_cmd *cmd, > - void(*callback)(struct se_cmd *cmd, > - void *callback_arg, int complete_status), > - void *callback_arg); > extern int transport_generic_passthrough(struct se_cmd *); > -extern void transport_complete_task_attr(struct se_cmd *); > -extern void transport_generic_complete_ok(struct se_cmd *); > -extern void transport_free_dev_tasks(struct se_cmd *); > -extern void transport_release_fe_cmd(struct se_cmd *); > -extern int transport_generic_remove(struct se_cmd *, int, int); > extern int transport_generic_map_mem_to_cmd(struct se_cmd *cmd, struct scatterlist *, u32, > struct scatterlist *, u32); > extern int transport_clear_lun_from_sessions(struct se_lun *); > extern int transport_check_aborted_status(struct se_cmd *, int); > -extern int transport_get_sense_codes(struct se_cmd *, u8 *, u8 *); > -extern int transport_set_sense_codes(struct se_cmd *, u8, u8); > extern int transport_send_check_condition_and_sense(struct se_cmd *, u8, int); > extern void transport_send_task_abort(struct se_cmd *); > extern void transport_release_cmd_to_pool(struct se_cmd *); > extern void transport_generic_free_cmd(struct se_cmd *, int, int, int); > extern void transport_generic_wait_for_cmds(struct se_cmd *, int); > -extern int transport_get_sectors(struct se_cmd *); > -extern unsigned char *transport_get_vaddr(struct se_mem *); > -extern struct list_head *transport_init_se_mem_list(void); > -extern void transport_free_se_mem_list(struct list_head *); > -extern int transport_generic_get_mem(struct se_cmd *, u32, u32); > extern u32 transport_calc_sg_num(struct se_task *, struct se_mem *, u32); > -extern int transport_map_sg_to_mem(struct se_cmd *, struct list_head *, > - void *, u32 *); > extern int transport_map_mem_to_sg(struct se_task *, struct list_head *, > void *, struct se_mem *, > struct se_mem **, u32 *, u32 *); > extern void transport_do_task_sg_chain(struct se_cmd *); > -extern u32 transport_generic_get_cdb_count(struct se_cmd *, > - struct se_transform_info *, > - unsigned long long, u32, > - enum dma_data_direction, > - struct list_head *); > -extern int transport_generic_new_cmd(struct se_cmd *); > extern void transport_generic_process_write(struct se_cmd *); > extern int transport_generic_do_tmr(struct se_cmd *); > /* From target_core_alua.c */ > -- > To unsubscribe from this list: send the line "unsubscribe linux-scsi" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html