- 25 5月, 2011 4 次提交
-
-
由 Nicholas Bellinger 提交于
This patch converts target core and follwing scsi-misc upstream fabric modules to use include/scsi/scsi_tcq.h includes for SIMPLE, HEAD_OF_QUEUE and ORDERED SCSI tasks instead of scsi/libsas.h with TASK_ATTR* *) tcm_loop: Convert tcm_loop_allocate_core_cmd() + tcm_loop_device_reset() to scsi_tcq.h *) tcm_fc: Convert ft_send_cmd() from FCP_PTA_* to scsi_tcq.h Reported-by: NChristoph Hellwig <hch@infradead.org> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <jbottomley@parallels.com>
-
由 Nicholas Bellinger 提交于
This patch fixes a bug where task->task_execute_queue=1 was not being cleared once se_task had been removed from se_device->execute_task_list, resulting in an OOPs in core_tmr_lun_reset() for the task->task_active=0 case where transport_remove_task_from_execute_queue() was incorrectly being called. This patch fixes two cases in transport_get_task_from_execute_queue() and transport_remove_task_from_execute_queue() to properly clear task->task_execute_queue=0 once list_del(&task->t_execute_list) has been called. It also adds an explict check in transport_remove_task_from_execute_queue() to dump_stack + return if called with task->task_execute_queue=0. Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org> Cc: stable@kernel.org Signed-off-by: NJames Bottomley <jbottomley@parallels.com>
-
由 Nicholas Bellinger 提交于
This patch addresses a bug in the target core release path for HW operation where transport_free_dev_tasks() was incorrectly being called from transport_lun_remove_cmd() while releasing a se_cmd reference and calling struct target_core_fabric_ops->queue_data_in(). This would result in a OOPs with HW target mode when the release of se_task->task_sg[] would happen before pci_unmap_sg() can be called in HW target mode fabric module code. This patch addresses the issue by moving transport_free_dev_tasks() from transport_lun_remove_cmd() into transport_generic_free_cmd(), and adding TRANSPORT_FREE_CMD_INTR and transport_generic_free_cmd_intr() to allow se_cmd descriptor release to happen fromfrom within transport_processing_thread() process context when release of se_cmd is not possible from HW interrupt context. Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org> Cc: stable@kernel.org Signed-off-by: NJames Bottomley <jbottomley@parallels.com>
-
由 Nicholas Bellinger 提交于
This patch fixes a bug in transport_do_task_sg_chain() used by HW target mode modules with sg_chain() to provide a single sg_next() walkable memory layout for use with pci_map_sg() and friends. This patch addresses an issue with mapping multiple small block max_sector tasks across multiple struct se_task->task_sg[] mappings for HW target mode operation. This was causing OOPs with (cmd->t_task->t_tasks_no > 1) I/O traffic for HW target drivers using transport_do_task_sg_chain(), and has been tested so far with tcm_fc(openfcoe), tcm_qla2xxx, and ib_srpt fabrics with t_tasks_no > 1 IBLOCK backends using a smaller max_sectors to trigger the original issue. Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org> Acked-by: NKiran Patil <kiran.patil@intel.com> Cc: stable@kernel.org Signed-off-by: NJames Bottomley <jbottomley@parallels.com>
-
- 10 4月, 2011 1 次提交
-
-
由 Justin P. Mattock 提交于
Signed-off-by: NJustin P. Mattock <justinmattock@gmail.com> Signed-off-by: NJiri Kosina <jkosina@suse.cz>
-
- 31 3月, 2011 1 次提交
-
-
由 Lucas De Marchi 提交于
Fixes generated by 'codespell' and manually reviewed. Signed-off-by: NLucas De Marchi <lucas.demarchi@profusion.mobi>
-
- 24 3月, 2011 4 次提交
-
-
由 Nicholas Bellinger 提交于
This patch removes a bogus conditional+return check within the failure path of transport_add_device_to_core_hba(). This breakage was introduced during the v4 conversion to remove struct se_cmd passthrough ops for INQUIRY / READ_CAPCITY during struct se_device creation and registration process. Reported-by: NJulia Lawall <julia@diku.dk> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Jesper Juhl 提交于
In drivers/target/target_core_transport.c::transport_generic_get_mem() there are a few potential memory leaks in the error paths. This patch makes sure that we free previously allocated memory when other allocations fail. It also moves some work (INIT_LIST_HEAD() and assignment to se_mem->se_len) below all the allocations so that if something fails we don't do the work at all. Signed-off-by: NJesper Juhl <jj@chaosbits.net> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Nicholas Bellinger 提交于
This patch changes include/target/target_core_tmr.h code to use target specific 'TMR_*' prefixed definitions for fabric independent SCSI Task Management Request/Request naming in include/scsi/scsi.h definitions for mainline target code. Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Dan Carpenter 提交于
This patch addresses the majority of sparse warnings and adds proper locking annotations. It also fixes the dubious one-bit signed bitfield, for which the signed one-bit types can be 0 or -1 which can cause a problem if someone ever checks if (foo->lu_gp_assoc == 1). The current code is fine because everyone just checks zero vs non-zero. But Sparse complains about it so lets change it. The warnings look like this: include/target/target_core_base.h:228:26: error: dubious one-bit signed bitfield Signed-off-by: NDan Carpenter <error27@gmail.com> Signed-off-by: NFubo Chen <fubo.chen@gmail.com> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
- 02 3月, 2011 1 次提交
-
-
由 Arnd Bergmann 提交于
These were missed the last time I cleaned this up globally, because of code moving around or new code getting merged. Signed-off-by: NArnd Bergmann <arnd@arndb.de>
-
- 01 3月, 2011 1 次提交
-
-
由 Nicholas Bellinger 提交于
This patch addresses two outstanding bugs related to T_TASK(cmd)->t_transport_aborted handling during TMR LUN_RESET and active I/O shutdown. This first involves adding two explict t_transport_aborted=1 assignments in core_tmr_lun_reset() in order to signal the task has been aborted, and updating transport_generic_wait_for_tasks() to skip sleeping when t_transport_aborted=1 has been set. This fixes an issue where transport_generic_wait_for_tasks() would end up sleeping indefinately when called from fabric module context while TMR LUN_RESET was happening with long outstanding backend struct se_task not yet being completed. The second adds a missing call to transport_remove_task_from_execute_queue() when task->task_execute_queue=1 is set in order to fix an OOPs when task->t_execute_list has not been dropped. It also fixes the same case in transport_processing_shutdown() to prevent the issue from happening during active I/O struct se_device shutdown. Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
- 13 2月, 2011 2 次提交
-
-
由 Nicholas Bellinger 提交于
This patch removes the legacy procfs based target_core_mib.c code, and moves the necessary scsi_index_tables functions and defines into target_core_transport.c and target_core_base.h code to allow existing fabric independent statistics to function. This includes the removal of a handful of 'atomic_t mib_ref_count' counters used in struct se_node_acl, se_session and se_hba to prevent removal while using seq_list procfs walking logic. [jejb: fix up compile failures] Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
由 Nicholas Bellinger 提交于
This patch fixes a bug introduced during the v4 control CDB emulation refactoring that broke SCF_SCSI_CONTROL_SG_IO_CDB operation within transport_map_control_cmd_to_task(). It moves the BUG_ON() into transport_do_se_mem_map() after the TRANSPORT(dev)->do_se_mem_map() RAMDISK_DR special case, and adds the proper struct se_mem assignment when !list_empty() for normal non RAMDISK_DR backend device cases. Reported-by: NKai-Thorsten Hambrecht <kai@hambrecht.org> Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
- 15 1月, 2011 1 次提交
-
-
由 Nicholas Bellinger 提交于
LIO target is a full featured in-kernel target framework with the following feature set: High-performance, non-blocking, multithreaded architecture with SIMD support. Advanced SCSI feature set: * Persistent Reservations (PRs) * Asymmetric Logical Unit Assignment (ALUA) * Protocol and intra-nexus multiplexing, load-balancing and failover (MC/S) * Full Error Recovery (ERL=0,1,2) * Active/active task migration and session continuation (ERL=2) * Thin LUN provisioning (UNMAP and WRITE_SAMExx) Multiprotocol target plugins Storage media independence: * Virtualization of all storage media; transparent mapping of IO to LUNs * No hard limits on number of LUNs per Target; maximum LUN size ~750 TB * Backstores: SATA, SAS, SCSI, BluRay, DVD, FLASH, USB, ramdisk, etc. Standards compliance: * Full compliance with IETF (RFC 3720) * Full implementation of SPC-4 PRs and ALUA Significant code cleanups done by Christoph Hellwig. [jejb: fix up for new block bdev exclusive interface. Minor fixes from Randy Dunlap and Dan Carpenter.] Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-