linux/drivers/target
Fubo Chen 05aea6e7e4 [SCSI] target: Remove unnecessary hba_dev_list walk and se_clear_dev_ports legacy code
This patch removes a legacy struct se_hba->hba_dev_list -> se_release_device_for_hba()
list walk in core_delete_hba(), which is no longer required while using configfs
VFS level parent/child struct config_group dependency referencing.  The reason
is because any struct se_hba->hba_dev_list-> struct se_device members are going
to have to be released via:

	rmdir /sys/kernel/config/target/core/$HBA/*

before rmdir release of struct se_hba via target_core_configfs.c:
target_core_call_delhbafromtarget() -> core_delete_hba()

	rmdir /sys/kernel/config/target/core/$HBA

to release struct se_hba in core_delete_hba().

This patch also removes the legacy se_clear_dev_ports() function, which is
left-over pre-configfs shutdown logic for when se_free_virtual_device()
was responsible for walking struct se_device->dev_sep_list and calling
core_dev_del_lun() for each individual active struct se_port->se_lun.

The reason this can be removed is because all struct se_device->dev_sep_list
-> struct se_port communication is done via configfs symlinks, which
means that an target fabric module's endpoints containg active struct
se_port(s) will have to be released via target_core_fabric_configfs.c:
target_fabric_port_unlink() via:

	unlink /sys/kernel/config/target/$FABRIC_MOD/$ENDPOINT/tpgt_$TPGT/lun/lun_$LUN_ID/<symlink>

before rmdir release of struct se_device in target_core_configfs.c:
target_core_drop_subdev() -> se_free_virtual_device() can happen via:

	rmdir /sys/kernel/config/target/core/$HBA/*

to release struct se_subsystem_dev in target_core_drop_subdev()

Reported-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Reported-by: Fubo Chen <fubo.chen@gmail.com>
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2011-03-23 11:36:27 -05:00
..
Kconfig
Makefile [SCSI] target: remove EXTRA_CFLAGS 2011-03-23 11:36:24 -05:00
target_core_alua.c
target_core_alua.h
target_core_cdb.c [SCSI] target: Fix volume size misreporting for volumes > 2TB 2011-03-14 18:31:08 -05:00
target_core_configfs.c [SCSI] target: Convert backend ->create_virtdevice() call to return ERR_PTR 2011-03-23 11:36:24 -05:00
target_core_device.c [SCSI] target: Remove unnecessary hba_dev_list walk and se_clear_dev_ports legacy code 2011-03-23 11:36:27 -05:00
target_core_fabric_configfs.c [SCSI] target: fix use after free detected by SLUB poison 2011-02-12 12:32:41 -06:00
target_core_fabric_lib.c drivers: remove extraneous includes of smp_lock.h 2011-03-02 00:02:40 +01:00
target_core_file.c [SCSI] target: Convert backend ->create_virtdevice() call to return ERR_PTR 2011-03-23 11:36:24 -05:00
target_core_file.h
target_core_hba.c [SCSI] target: Remove unnecessary hba_dev_list walk and se_clear_dev_ports legacy code 2011-03-23 11:36:27 -05:00
target_core_hba.h
target_core_iblock.c [SCSI] target: Convert backend ->create_virtdevice() call to return ERR_PTR 2011-03-23 11:36:24 -05:00
target_core_iblock.h
target_core_pr.c
target_core_pr.h
target_core_pscsi.c [SCSI] target: Convert backend ->create_virtdevice() call to return ERR_PTR 2011-03-23 11:36:24 -05:00
target_core_pscsi.h
target_core_rd.c [SCSI] target: Convert backend ->create_virtdevice() call to return ERR_PTR 2011-03-23 11:36:24 -05:00
target_core_rd.h
target_core_scdb.c
target_core_scdb.h
target_core_tmr.c [SCSI] target: Fix t_transport_aborted handling in LUN_RESET + active I/O shutdown 2011-02-28 11:23:32 -06:00
target_core_tpg.c drivers: remove extraneous includes of smp_lock.h 2011-03-02 00:02:40 +01:00
target_core_transport.c Merge branch 'config' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2011-03-16 17:21:00 -07:00
target_core_ua.c
target_core_ua.h