Revision tags: v4.3-rc1, v4.2, v4.2-rc8, v4.2-rc7, v4.2-rc6, v4.2-rc5 |
|
#
94509182 |
| 30-Jul-2015 |
Nicholas Bellinger <nab@linux-iscsi.org> |
target: Perform RCU callback barrier before backend/fabric unload
This patch addresses a v4.2-rc1 regression where backend driver module unload happening immediately after TBO->free_device() does in
target: Perform RCU callback barrier before backend/fabric unload
This patch addresses a v4.2-rc1 regression where backend driver module unload happening immediately after TBO->free_device() does internal call_rcu(), will currently result in IRQ context rcu_process_callbacks() use-after-free paging OOPsen.
It adds the missing rcu_barrier() in target_backend_unregister() to perform an explicit RCU barrier waiting for all RCU callbacks to complete before releasing target_backend_ops memory, and allowing TBO->module exit to proceed.
Also, do the same for fabric drivers in target_unregister_template() to ensure se_deve_entry->rcu_head -> kfree_rcu() callbacks have completed, before allowing target_core_fabric_ops->owner module exit to proceed.
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Hannes Reinecke <hare@suse.de> Cc: Sagi Grimberg <sagig@mellanox.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
Revision tags: v4.2-rc4, v4.2-rc3, v4.2-rc2 |
|
#
c2091026 |
| 12-Jul-2015 |
David Disseldorp <ddiss@suse.de> |
target/configfs: handle match_int() errors
As a follow up to ce31c1b0dc4038a1dec64585d892adb73d9c45f4 - there are still a few LIO match_int() calls that don't check the return value. Propagate error
target/configfs: handle match_int() errors
As a follow up to ce31c1b0dc4038a1dec64585d892adb73d9c45f4 - there are still a few LIO match_int() calls that don't check the return value. Propagate errors rather than using the potentially uninitialised result.
Signed-off-by: David Disseldorp <ddiss@suse.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
9105bfc0 |
| 09-Jul-2015 |
Andy Grover <agrover@redhat.com> |
target: Do not return 0 from aptpl and alua configfs store functions
Here are some more instances where we are returning 0 from a configfs store function, the unintended result of which is likely in
target: Do not return 0 from aptpl and alua configfs store functions
Here are some more instances where we are returning 0 from a configfs store function, the unintended result of which is likely infinite retries from userspace.
Signed-off-by: Andy Grover <agrover@redhat.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
bc1a7d6a |
| 09-Jul-2015 |
Andy Grover <agrover@redhat.com> |
target: Indicate success if writing 0 to pi_prot_type
See https://bugzilla.redhat.com/show_bug.cgi?id=1240687
Returning 0 from a configfs store function results in infinite retries.
Reported-by: Y
target: Indicate success if writing 0 to pi_prot_type
See https://bugzilla.redhat.com/show_bug.cgi?id=1240687
Returning 0 from a configfs store function results in infinite retries.
Reported-by: Yanko Kaneti <yaneti@declera.com> Signed-off-by: Andy Grover <agrover@redhat.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
Revision tags: v4.2-rc1, v4.1 |
|
#
6de2ce5b |
| 19-Jun-2015 |
Christoph Hellwig <hch@lst.de> |
target: remove target_core_configfs.h
The remaining defintions are private to the target core and can be merged into target_core_internal.h.
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-b
target: remove target_core_configfs.h
The remaining defintions are private to the target core and can be merged into target_core_internal.h.
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Andy Grover <agrover@redhat.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
ce8dd25d |
| 19-Jun-2015 |
Christoph Hellwig <hch@lst.de> |
target: consolidate version defines
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Andy Grover <agrover@redhat.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
|
Revision tags: v4.1-rc8 |
|
#
f2d30680 |
| 10-Jun-2015 |
Hannes Reinecke <hare@suse.de> |
target: use 64-bit LUNs
As we're now using a list to hold the LUNs the target core can now converted to use 64-bit LUNs internally.
Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Nich
target: use 64-bit LUNs
As we're now using a list to hold the LUNs the target core can now converted to use 64-bit LUNs internally.
Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
Revision tags: v4.1-rc7, v4.1-rc6 |
|
#
adf653f9 |
| 25-May-2015 |
Christoph Hellwig <hch@lst.de> |
target: Subsume se_port + t10_alua_tg_pt_gp_member into se_lun
This patch eliminates all se_port + t10_alua_tg_pt_gp_member usage, and converts current users to direct se_lun pointer dereference.
T
target: Subsume se_port + t10_alua_tg_pt_gp_member into se_lun
This patch eliminates all se_port + t10_alua_tg_pt_gp_member usage, and converts current users to direct se_lun pointer dereference.
This includes the removal of core_export_port(), core_release_port() core_dev_export() and core_dev_unexport(). Along with conversion of special case se_lun pointer dereference within PR ALL_TG_PT=1 and ALUA access state transition UNIT_ATTENTION handling.
Also, update core_enable_device_list_for_node() to reference the new per se_lun->lun_deve_list when creating a new entry, or replacing an existing one via RCU.
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
Revision tags: v4.1-rc5, v4.1-rc4, v4.1-rc3 |
|
#
3effdb90 |
| 10-May-2015 |
Christoph Hellwig <hch@lst.de> |
target: simplify backend attribute implementation
Consolidate the implementation of the backend attributes in a single file and single function per attribute show/store function instead of splitting
target: simplify backend attribute implementation
Consolidate the implementation of the backend attributes in a single file and single function per attribute show/store function instead of splitting it into multiple functions in multiple files.
Also use the proper strto* helpers for exposed data types, add macros to implement the store methods for the most common data types and share the show methods between the two different attribute implementations.
(Fix bogus store_pi_prot_format flag=0 return value - nab)
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
5873c4d1 |
| 10-May-2015 |
Christoph Hellwig <hch@lst.de> |
target: consolidate backend attribute implementations
Provide a common sets of dev_attrib attributes for all devices using the generic SPC/SBC parsers, and a second one with the minimal required rea
target: consolidate backend attribute implementations
Provide a common sets of dev_attrib attributes for all devices using the generic SPC/SBC parsers, and a second one with the minimal required read-only attributes for passthrough devices. The later is only used by pscsi for now, but will be wired up for the full-passthrough TCMU use case as well.
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
0a06d430 |
| 10-May-2015 |
Christoph Hellwig <hch@lst.de> |
target: simplify backend driver registration
Rewrite the backend driver registration based on what we did to the fabric drivers: introduce a read-only struct target_bakckend_ops that the driver reg
target: simplify backend driver registration
Rewrite the backend driver registration based on what we did to the fabric drivers: introduce a read-only struct target_bakckend_ops that the driver registers, which is then instanciate as a struct target_backend by the core. This allows the ops vector to be smaller and allows us to mark it const. At the same time the registration function can set up the configfs attributes, avoiding the need to add additional boilerplate code for that to the drivers.
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
Revision tags: v4.1-rc2, v4.1-rc1, v4.0, v4.0-rc7, v4.0-rc6 |
|
#
79dc9c9e |
| 26-Mar-2015 |
Nicholas Bellinger <nab@linux-iscsi.org> |
target/pr: Change alloc_registration to avoid pr_reg_tg_pt_lun
This patch changes __core_scsi3_do_alloc_registration() code to drop pr_reg->pr_reg_tg_pt_lun pointer usage in favor of a new pr_reg RP
target/pr: Change alloc_registration to avoid pr_reg_tg_pt_lun
This patch changes __core_scsi3_do_alloc_registration() code to drop pr_reg->pr_reg_tg_pt_lun pointer usage in favor of a new pr_reg RPTI + existing pr_reg->pr_aptpl_target_lun used by APTPL metadata logic.
It also includes changes to REGISTER, REGISTER_AND_MOVE and APTPL feature bit codepaths to use rcu_dereference_check() with the expected non-zero se_dev_entry->pr_kref reference held.
Reviewed-by: Hannes Reinecke <hare@suse.de> Cc: Christoph Hellwig <hch@lst.de> Cc: Sagi Grimberg <sagig@mellanox.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
968ebe75 |
| 03-May-2015 |
Christoph Hellwig <hch@lst.de> |
target: remove struct target_fabric_configfs_template
It's only embedded into struct target_fabric_configfs these days, so we might as well remove this layer of abstraction.
Signed-off-by: Christop
target: remove struct target_fabric_configfs_template
It's only embedded into struct target_fabric_configfs these days, so we might as well remove this layer of abstraction.
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
0dc2e8d1 |
| 03-May-2015 |
Christoph Hellwig <hch@lst.de> |
target: put struct target_fabric_configfs on a diet
Remove all fields that are either unused or can be replaced by trivially following pointers.
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed
target: put struct target_fabric_configfs on a diet
Remove all fields that are either unused or can be replaced by trivially following pointers.
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
ef0caf8d |
| 03-May-2015 |
Christoph Hellwig <hch@lst.de> |
target: don't copy fabric ops
Now that we don't need to set up ->tf_subsys we don't need to copy around the ops vector anymore.
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas
target: don't copy fabric ops
Now that we don't need to set up ->tf_subsys we don't need to copy around the ops vector anymore.
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
45fb94c2 |
| 14-Apr-2015 |
Bart Van Assche <bart.vanassche@sandisk.com> |
target: Remove set-but-not-used-variables
Detected these variables by building with W=1.
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> Signed-off-by: Nicholas Bellinger <nab@linux-isc
target: Remove set-but-not-used-variables
Detected these variables by building with W=1.
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
649ee054 |
| 14-Apr-2015 |
Bart Van Assche <bart.vanassche@sandisk.com> |
target: Move task tag into struct se_cmd + support 64-bit tags
Simplify target core and target drivers by storing the task tag a.k.a. command identifier inside struct se_cmd.
For several transports
target: Move task tag into struct se_cmd + support 64-bit tags
Simplify target core and target drivers by storing the task tag a.k.a. command identifier inside struct se_cmd.
For several transports (e.g. SRP) tags are 64 bits wide. Hence add support for 64-bit tags.
(Fix core_tmr_abort_task conversion spec warnings - nab) (Fix up usb-gadget to use 16-bit tags - HCH + bart)
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Andy Grover <agrover@redhat.com> Cc: Sagi Grimberg <sagig@mellanox.com> Cc: <qla2xxx-upstream@qlogic.com> Cc: Felipe Balbi <balbi@ti.com> Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Juergen Gross <jgross@suse.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
2650d71e |
| 01-May-2015 |
Christoph Hellwig <hch@lst.de> |
target: move transport ID handling to the core
Now that struct se_portal_group contains a protocol identifier field we can take all the code to format an parse protocol identifiers in CDBs into comm
target: move transport ID handling to the core
Now that struct se_portal_group contains a protocol identifier field we can take all the code to format an parse protocol identifiers in CDBs into common code instead of leaving this to low-level drivers.
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
2aeeafae |
| 01-May-2015 |
Christoph Hellwig <hch@lst.de> |
target: remove the get_fabric_proto_ident method
Now that we store the protocol identifier in the tpg structure we don't need this method.
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-b
target: remove the get_fabric_proto_ident method
Now that we store the protocol identifier in the tpg structure we don't need this method.
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
144bc4c2 |
| 13-Apr-2015 |
Christoph Hellwig <hch@lst.de> |
target: move node ACL allocation to core code
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
|
#
e1750d20 |
| 13-Apr-2015 |
Christoph Hellwig <hch@lst.de> |
target: make the tpg_get_default_depth method optional
All fabric drivers except for iSCSI always return 1, so implement that as default behavior.
Signed-off-by: Christoph Hellwig <hch@lst.de> Sign
target: make the tpg_get_default_depth method optional
All fabric drivers except for iSCSI always return 1, so implement that as default behavior.
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
a3541703 |
| 19-May-2015 |
Andy Grover <agrover@redhat.com> |
target: Use a PASSTHROUGH flag instead of transport_types
It seems like we only care if a transport is passthrough or not. Convert transport_type to a flags field and replace TRANSPORT_PLUGIN_* with
target: Use a PASSTHROUGH flag instead of transport_types
It seems like we only care if a transport is passthrough or not. Convert transport_type to a flags field and replace TRANSPORT_PLUGIN_* with a flag, TRANSPORT_FLAG_PASSTHROUGH.
Signed-off-by: Andy Grover <agrover@redhat.com> Reviewed-by: Ilias Tsitsimpis <iliastsi@arrikto.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
d588cf8f |
| 03-May-2015 |
Christoph Hellwig <hch@lst.de> |
target: Fix se_tpg_tfo->tf_subsys regression + remove tf_subsystem
There is just one configfs subsystem in the target code, so we might as well add two helpers to reference / unreference it from the
target: Fix se_tpg_tfo->tf_subsys regression + remove tf_subsystem
There is just one configfs subsystem in the target code, so we might as well add two helpers to reference / unreference it from the core code instead of passing pointers to it around.
This fixes a regression introduced for v4.1-rc1 with commit 9ac8928e6, where configfs_depend_item() callers using se_tpg_tfo->tf_subsys would fail, because the assignment from the original target_core_subsystem[] is no longer happening at target_register_template() time.
(Fix target_core_exit_configfs pointer dereference - Sagi)
Signed-off-by: Christoph Hellwig <hch@lst.de> Reported-by: Himanshu Madhani <himanshu.madhani@qlogic.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
#
9ac8928e |
| 08-Apr-2015 |
Christoph Hellwig <hch@lst.de> |
target: simplify the target template registration API
Instead of calling target_fabric_configfs_init() + target_fabric_configfs_register() / target_fabric_configfs_deregister() target_fabric_configf
target: simplify the target template registration API
Instead of calling target_fabric_configfs_init() + target_fabric_configfs_register() / target_fabric_configfs_deregister() target_fabric_configfs_free() from every target driver, rewrite the API so that we have simple register/unregister functions that operate on a const operations vector.
This patch also fixes a memory leak in several target drivers. Several target drivers namely called target_fabric_configfs_deregister() without calling target_fabric_configfs_free().
A large part of this patch is based on earlier changes from Bart Van Assche <bart.vanassche@sandisk.com>.
(v2: Add a new TF_CIT_SETUP_DRV macro so that the core configfs code can declare attributes as either core only or for drivers)
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|
Revision tags: v4.0-rc5 |
|
#
62554910 |
| 20-Mar-2015 |
Nicholas Bellinger <nab@linux-iscsi.org> |
target: Convert fabric module autoload failures to pr_debug
This patch converts the fabric module autoload failures from pr_err to pr_debug in target_core_register_fabric() code, to reduce the amoun
target: Convert fabric module autoload failures to pr_debug
This patch converts the fabric module autoload failures from pr_err to pr_debug in target_core_register_fabric() code, to reduce the amount of noise during normal operation.
Reported-by: Olaf Hering <olaf@aepfle.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
show more ...
|