All target transport drivers have its own 'tpg/enable' attribute implementation. This produces unnecessary code duplication. Also it makes difficult to control that attribute and to depend on that attribute inside of target core module. Replace tpg/enable attribute implementation of each transport to a common implementation for all transports. Move enabling target logic to a new fabric_ops callback. This patchset is intended for scsi-queue. Dmitry Bogdanov (4): target: core: add common tpg/enable attribute target: iscsi: replace enable attr to ops.enable target: qla2xx: replace enable attr to ops.enable target: sbp: replace enable attr to ops.enable drivers/scsi/qla2xxx/tcm_qla2xxx.c | 73 +++------------- drivers/target/iscsi/iscsi_target_configfs.c | 91 +++++++------------- drivers/target/sbp/sbp_target.c | 30 ++----- drivers/target/target_core_configfs.c | 1 + drivers/target/target_core_fabric_configfs.c | 38 +++++++- drivers/target/target_core_internal.h | 1 + drivers/target/target_core_tpg.c | 42 +++++++++ include/target/target_core_base.h | 1 + include/target/target_core_fabric.h | 1 + 9 files changed, 129 insertions(+), 147 deletions(-) -- 2.25.1