aboutsummaryrefslogtreecommitdiff
path: root/drivers/target
AgeCommit message (Collapse)AuthorFilesLines
2013-11-20target_core_alua: Store supported ALUA statesHannes Reinecke2-6/+19
The supported ALUA states might be different for individual devices, so store it in a separate field. (nab: Remove unnecessary line continuation) Signed-off-by: Hannes Reinecke <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-20target_core_alua: Rename ALUA_ACCESS_STATE_OPTIMIZEDHannes Reinecke2-6/+6
Rename ALUA_ACCESS_STATE_OPTMIZED to ALUA_ACCESS_STATE_OPTIMIZED. Signed-off-by: Hannes Reinecke <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-20target_core_alua: spellcheckHannes Reinecke1-9/+9
Signed-off-by: Hannes Reinecke <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-20target core: rename (ex,im)plict -> (ex,im)plicitHannes Reinecke9-100/+100
Signed-off-by: Hannes Reinecke <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-19iscsi-target: Do not reject non-immediate CmdSNs exceeding MaxCmdSNNicholas Bellinger2-8/+11
This patch changes iscsit_sequence_cmd() logic to no longer reject non-immediate CmdSNs that exceed MaxCmdSN with a protocol error, but instead silently ignore them. This is done to correctly follow RFC-3720 Section 3.2.2.1: For non-immediate commands, the CmdSN field can take any value from ExpCmdSN to MaxCmdSN inclusive. The target MUST silently ignore any non-immediate command outside of this range or non- immediate duplicates within the range. Reported-by: Santosh Kulkarni <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-19iscsi-target: Convert iscsi_session statistics to atomic_long_tNicholas Bellinger6-50/+25
This patch converts a handful of iscsi_session statistics to type atomic_long_t, instead of using iscsi_session->session_stats_lock when incrementing these values. More importantly, go ahead and drop the spinlock usage within iscsit_setup_scsi_cmd(), iscsit_check_dataout_hdr(), iscsit_send_datain(), and iscsit_build_rsp_pdu() fast-path code. (Squash in Roland's target: Remove write-only stats fields and lock from struct se_node_acl) Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-13target: Convert se_device statistics to atomic_long_tNicholas Bellinger3-16/+13
This patch converts the handful of se_device statistics to type atomic_long_t, instead of using se_device->stats_lock when incrementing these values. More importantly, go ahead and drop the spinlock usage within transport_lookup_cmd_lun() fast-path code. Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-13target: Fix delayed Task Aborted Status (TAS) handling bugNicholas Bellinger1-0/+2
This patch fixes a bug in delayed Task Aborted Status (TAS) handling, where transport_send_task_abort() was not returning for the case when the se_tfo->write_pending() callback indicated that last fabric specific WRITE PDU had not yet been received. It also adds an explicit cmd->scsi_status = SAM_STAT_TASK_ABORTED assignment within transport_check_aborted_status() to avoid the case where se_tfo->queue_status() is called when the SAM_STAT_TASK_ABORTED assignment + ->queue_status() in transport_send_task_abort() does not occur once SCF_SENT_DELAYED_TAS has been set. Cc: <[email protected]> #3.2+ Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-13iscsi-target: Reject unsupported multi PDU text command sequenceNicholas Bellinger1-0/+7
This patch adds a check to reject text commands with F_BIT=0 || C_BIT=1, as multi PDU text command sequences are currently unsupported. This avoids the case where a text command received with F_BIT=0, was generating a text response with F_BIT=1 which is a protocol error according to RFC-3720 Section 10.11.1. Reported-by: Arshad Hussain <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-12iscsi-target: Fix mutex_trylock usage in iscsit_increment_maxcmdsnNicholas Bellinger2-5/+6
This patch fixes a >= v3.10 regression bug with mutex_trylock() usage within iscsit_increment_maxcmdsn(), that was originally added to allow for a special case where ->cmdsn_mutex was already held from the iscsit_execute_cmd() exception path for ib_isert. When !mutex_trylock() was occuring under contention during normal RX/TX process context codepaths, the bug was manifesting itself as the following protocol error: Received CmdSN: 0x000fcbb7 is greater than MaxCmdSN: 0x000fcbb6, protocol error. Received CmdSN: 0x000fcbb8 is greater than MaxCmdSN: 0x000fcbb6, protocol error. This patch simply avoids the direct ib_isert callback in lio_queue_status() for the special iscsi_execute_cmd() exception cases, that allows the problematic mutex_trylock() usage in iscsit_increment_maxcmdsn() to go away. Reported-by: Moussa Ba <[email protected]> Tested-by: Moussa Ba <[email protected]> Cc: <[email protected]> # v3.10+ Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-12target: Core does not need blkdev.hAndy Grover3-3/+0
Target core does not depend on the block layer, only backstores that use the block layer do. Signed-off-by: Andy Grover <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-12target: Pass through I/O topology for block backstoresAndy Grover3-3/+63
In addition to block size (already implemented), passing through alignment offset, logical-to-phys block exponent, I/O granularity and optimal I/O length will allow initiators to properly handle layout on LUNs with 4K block sizes. Tested with various weird values via scsi_debug module. One thing to look at with this patch is the new block limits values -- instead of granularity 1 optimal 8192, Lio will now be returning whatever the block device says, which may affect performance. Signed-off-by: Andy Grover <[email protected]> Acked-by: Martin K. Petersen <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-08target: Add per device xcopy_lun for copy offload I/ONicholas Bellinger2-17/+10
This patch adds a se_device->xcopy_lun that is used for local copy offload I/O, instead of allocating + initializing a pseudo se_lun for each received EXTENDED_COPY operation. Also, move declaration of struct se_lun + struct se_port_stat_grps ahead of struct se_device. Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-07target: Drop left-over se_lun->lun_cmd_list shutdown codeNicholas Bellinger3-232/+4
Now with percpu refcounting for se_lun in place, go ahead and drop the legacy per se_cmd accounting for se_lun shutdown. This includes __transport_clear_lun_from_sessions(), the associated transport_lun_wait_for_tasks() logic, along with a handful of now unused se_cmd structure members and ->transport_state bits. Cc: Kent Overstreet <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-07target: Add percpu refcounting for se_lun accessNicholas Bellinger5-18/+40
This patch adds percpu refcounting for se_lun access that allows the association of an se_lun + se_cmd in transport_lookup_cmd_lun() to occur without an extra list_head for tracking outstanding I/O during se_lun shutdown. This effectively changes se_lun shutdown logic to wait for outstanding I/O percpu references to complete in transport_lun_remove_cmd() using se_lun->lun_ref_comp, instead of explicitly draining the per se_lun command list and waiting for individual se_cmd descriptor processing to complete. Cc: Kent Overstreet <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-11-07iscsi-target: Do not generate REJECTs for zero-length DataOUTNicholas Bellinger1-4/+3
This patch changes iscsit_check_dataout_hdr() to no longer generate REJECTs for zero-length DataOUTs, and instead simply ignore these requests. This follows RFC-3720, Section 10.7.7. DataSegmentLength "This is the data payload length of a SCSI Data-In or SCSI Data-Out PDU. The sending of 0 length data segments should be avoided, but initiators and targets MUST be able to properly receive 0 length data segments." Reported-by: Santosh Kulkarni <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-25target/pscsi: fix return value checkWei Yongjun1-4/+4
In case of error, the function scsi_host_lookup() returns NULL pointer not ERR_PTR(). The IS_ERR() test in the return value check should be replaced with NULL test. Signed-off-by: Wei Yongjun <[email protected]> Cc: <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-24target: Fail XCOPY for non matching source + destination block_sizeNicholas Bellinger1-1/+13
This patch adds an explicit check + failure for XCOPY I/O to source + destination devices with a non-matching block_size. This limitiation is currently due to the fact that the scatterlist memory allocated for the XCOPY READ operation is passed zero-copy to the XCOPY WRITE operation. Reported-by: Thomas Glanzmann <[email protected]> Reported-by: Douglas Gilbert <[email protected]> Cc: Thomas Glanzmann <[email protected]> Cc: Douglas Gilbert <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-24target: Generate failure for XCOPY I/O with non-zero scsi_statusNicholas Bellinger1-1/+2
This patch adds the missing non-zero se_cmd->scsi_status check required for local XCOPY I/O within target_xcopy_issue_pt_cmd() to signal an exception case failure. This will trigger the generation of SAM_STAT_CHECK_CONDITION status from within target_xcopy_do_work() process context code. Reported-by: Thomas Glanzmann <[email protected]> Reported-by: Douglas Gilbert <[email protected]> Cc: Thomas Glanzmann <[email protected]> Cc: Douglas Gilbert <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-24target: Add missing XCOPY I/O operation sense_bufferNicholas Bellinger1-2/+3
This patch adds the missing xcopy_pt_cmd->sense_buffer[] required for correctly handling CHECK_CONDITION exceptions within the locally generated XCOPY I/O path. Also update target_xcopy_read_source() + target_xcopy_setup_pt_cmd() to pass this buffer into transport_init_se_cmd() to correctly setup se_cmd->sense_buffer. Reported-by: Thomas Glanzmann <[email protected]> Reported-by: Douglas Gilbert <[email protected]> Cc: Thomas Glanzmann <[email protected]> Cc: Douglas Gilbert <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-23iscsi-target: Implement demo_mode_discovery logicThomas Glanzmann1-9/+30
If demo_mode_discovery=0 and generate_node_acls=0 (demo mode dislabed) do not return TargetName+TargetAddress unless a NodeACL exists. Signed-off-by: Thomas Glanzmann <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-23target: Export symbol core_tpg_check_initiator_node_aclThomas Glanzmann2-2/+1
Export symbol core_tpg_check_initiator_node_acl and move prototype from the private drivers/target/target_core_internal.h to the public include/target/target_core_fabric.h Signed-off-by: Thomas Glanzmann <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-23iscsi-target: Add new TPG attributeThomas Glanzmann4-0/+29
Add a new TPG attribute demo_mode_discovery which is enabled by default. Signed-off-by: Thomas Glanzmann <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-16tcm_loop: Implement target resetHannes Reinecke1-0/+26
Implement target reset by resetting the transport status. (nab: Remove unused ret in tcm_loop_target_reset) Signed-off-by: Hannes Reinecke <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-16tcm_loop: TCQ and command abort supportHannes Reinecke2-4/+69
Implement TCQ support, which enables us to do proper command abort, too. Signed-off-by: Hannes Reinecke <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-16tcm_loop: separate out tcm_loop_issue_tmrHannes Reinecke1-33/+50
No functional change. Signed-off-by: Hannes Reinecke <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-16tcm_loop: Implement transport offlineHannes Reinecke2-1/+56
Add attribute 'transport_status' to simulate link failure. Signed-off-by: Hannes Reinecke <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-16tcm_loop: Check for valid hba in tcm_loop_drop_nexus()Hannes Reinecke1-1/+4
Signed-off-by: Hannes Reinecke <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-16target/iscsi: Remove macros that contain typecastsAndy Grover6-22/+18
These just want to return a pointer instead of a value, but are otherwise the same. ISCSI_TPG_LUN macro was unused. Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Andy Grover <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-16target/iscsi: Remove iscsi dereferencing macrosAndy Grover4-36/+27
These are all straightforward. Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Andy Grover <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-16target: Remove TF_CIT_TMPL macroAndy Grover6-56/+56
Remove a lingering macro that just hid a dereference. Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Andy Grover <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-16target: Return an error for WRITE SAME with ANCHOR==1Roland Dreier1-0/+5
Per SBC-3, since we report ANC_SUP==0 in VPD page B2h, we need to return an error (ILLEGAL REQUEST/INVALID FIELD IN CDB) for all WRITE SAME requests with ANCHOR==1. Signed-off-by: Roland Dreier <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-09target: Reject EXTENDED_COPY when emulate_3pc is disabledNicholas Bellinger1-0/+9
This patch rejects EXTENDED_COPY when the emulate_3pc attribute has been explicitly disabled for the receiving device. It also adds a similar check in target_xcopy_locate_se_dev_e4() to ignore these devices when doing a search based upon the identifier WWN provided by EXTENDED_COPY parameter list target descriptors. Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-09target: Allow non zero ListID in EXTENDED_COPY parameter listNicholas Bellinger1-5/+2
This patch changes target_do_xcopy() to allow processing of non-zero ListIDs in EXTENDED_COPY parameter list data, instead of returning CHECK_CONDITION status. As the copy offload implementation reports SNLID=1 (Supports No ListID) in OPERATING PARAMETERS, any ListID value presented by the client is currently ignored. Also, properly extract list_id_usage for informational purposes. Reported-by: Thomas Glanzmann <[email protected]> Reported-by: Douglas Gilbert <[email protected]> Cc: Hannes Reinecke <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-09target: Make target_do_xcopy failures return INVALID_PARAMETER_LISTNicholas Bellinger1-8/+9
This patch changes target_do_xcopy() to properly return TCM_INVALID_PARAMETER_LIST instead of TCM_INVALID_CDB_FIELD for failures related to the EXTENDED_COPY parameter list parsing. Also, move struct xcopy_op allocation ahead of kmapping to handle the special TCM_OUT_OF_RESOURCES case. Reported-by: Thomas Glanzmann <[email protected]> Reported-by: Douglas Gilbert <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-03iscsi-target; Allow an extra tag_num / 2 number of percpu_ida tagsNicholas Bellinger1-1/+1
This patch bumps the default number of tags allocated per session by iscsi-target via transport_alloc_session_tags() -> percpu_ida_init() by another (tag_num / 2). This is done to take into account the tags waiting to be acknowledged and released in iscsit_ack_from_expstatsn(), but who's number are not directly limited by the CmdSN Window queue_depth being enforced by the target. Using a larger value here is also useful to prevent percpu_ida_alloc() from having to steal tags from other CPUs when no tags are available on the local CPU, while waiting for unacknowledged tags to be released. Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-03iscsi-target: Perform release of acknowledged tags from RX contextNicholas Bellinger1-4/+9
This patch converts iscsit_ack_from_expstatsn() to populate a local ack_list of commands, and call iscsit_free_cmd() directly from RX thread context, instead of using iscsit_add_cmd_to_immediate_queue() to queue the acknowledged commands to be released from TX thread context. It is helpful to release the acknowledge commands as quickly as possible, along with the associated percpu_ida tags, in order to prevent percpu_ida_alloc() from having to steal tags from other CPUs while waiting for iscsit_free_cmd() to happen from TX thread context. Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-03iscsi-target: Only perform wait_for_tasks when performing shutdownNicholas Bellinger1-2/+2
This patch changes transport_generic_free_cmd() to only wait_for_tasks when shutdown=true is passed to iscsit_free_cmd(). With the advent of >= v3.10 iscsi-target code using se_cmd->cmd_kref, the extra wait_for_tasks with shutdown=false is unnecessary, and may end up causing an extra context switch when releasing WRITEs. Cc: [email protected] # 3.10+ Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-03target: Fail on non zero scsi_status in compare_and_write_callbackNicholas Bellinger1-1/+10
This patch addresses a bug for backends such as IBLOCK that perform asynchronous completion via transport_complete_cmd(), that will call target_complete_failure_work() -> transport_generic_request_failure(), upon exception status and invoke cmd->transport_complete_callback() -> compare_and_write_callback() incorrectly during the failure case. It adds a check for a non zero se_cmd->scsi_status within the first invocation of compare_and_write_callback(), and will jump to out plus up se_device->caw_sem before exiting the callback. Reported-by: Thomas Glanzmann <[email protected]> Tested-by: Thomas Glanzmann <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-03target: Fix recursive COMPARE_AND_WRITE callback failureNicholas Bellinger1-1/+10
This patch addresses a bug when compare_and_write_callback() invoked from target_complete_ok_work() hits an failure from __target_execute_cmd() -> cmd->execute_cmd(), that ends up calling transport_generic_request_failure() -> compare_and_write_post(), thus causing SCF_COMPARE_AND_WRITE_POST to incorrectly be set. The result of this bug is that target_complete_ok_work() no longer hits the if (!rc && !(cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE_POST) check that forces an immediate return, and instead double completes the se_cmd in question, triggering an OOPs in the process. This patch changes compare_and_write_post() to only set this bit when a failure has not already occured to ensure the immediate return from within target_complete_ok_work(), and thus allow transport_generic_request_failure() to handle the sending of the CHECK_CONDITION exception status. Reported-by: Thomas Glanzmann <[email protected]> Tested-by: Thomas Glanzmann <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-03target: Reset data_length for COMPARE_AND_WRITE to NoLB * block_sizeNicholas Bellinger1-0/+6
This patch resets se_cmd->data_length for COMPARE_AND_WRITE emulation within sbc_compare_and_write() to NoLB * block_size in order to address a bug with FILEIO backends where a I/O failure will occur when data_length does not match the I/O size being actually dispatched for the individual per block READs + WRITEs. This is done late enough in sbc_compare_and_write() after the memory allocations have occured in transport_generic_new_cmd() to not cause any unwanted side-effects. Reported-by: Thomas Glanzmann <[email protected]> Tested-by: Thomas Glanzmann <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-01tcm_fc: Convert to per-cpu command map pre-allocation of ft_cmdNicholas Bellinger3-5/+17
This patch converts tcm_fc to use transport_init_session_tags() pre-allocation logic for struct ft_cmd descriptors using per-cpu session tag pooling in order to effectively avoid memory allocation + release for each received I/O. It adds percpu_ida_alloc() in ft_recv_cmd() to obtain an tag and locate ft_cmd from se_sess->sess_cmd_map[], and percpu_ida_free() in ft_free_cmd() to release the tag based upon se_cmd->map_tag id. It also uses a TCM_FC_DEFAULT_TAGS value of 512, that puts the per se_sess->sess_cmd_map allocation at ~360K on 64-bit. v2 changes: - Handle possible tag < 0 failure with GFP_ATOMIC Cc: Mark Rustad <[email protected]> Cc: Robert Love <[email protected]> Cc: Kent Overstreet <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-01target: Fall back to vzalloc upon ->sess_cmd_map kzalloc failureNicholas Bellinger1-5/+15
This patch changes transport_alloc_session_tags() to fall back to use vzalloc when kzalloc fails for big tag_num that end up generating larger order allocations. Also use is_vmalloc_addr() in transport_alloc_session_tags() failure path, and normal transport_free_session() path to determine when vfree() needs to be called instead of kfree(). v2 changes: - Use __GFP_NOWARN | __GFP_REPEAT for sess_cmd_map kzalloc (mst) Cc: Michael S. Tsirkin <[email protected]> Cc: Asias He <[email protected]> Cc: Kent Overstreet <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-10-01target: Fix xop->dbl assignment in target_xcopy_parse_segdesc_02Nicholas Bellinger1-2/+2
This patch fixes up an incorrect assignment for xop->dbl within target_xcopy_parse_segdesc_02() code, as reported by Coverity here: http://marc.info/?l=linux-kernel&m=137936416618490&w=2 Reported-by: Dave Jones <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
2013-09-12Merge branch 'for-next' of ↵Linus Torvalds47-473/+2347
git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending Pull SCSI target updates from Nicholas Bellinger: "Lots of activity again this round for I/O performance optimizations (per-cpu IDA pre-allocation for vhost + iscsi/target), and the addition of new fabric independent features to target-core (COMPARE_AND_WRITE + EXTENDED_COPY). The main highlights include: - Support for iscsi-target login multiplexing across individual network portals - Generic Per-cpu IDA logic (kent + akpm + clameter) - Conversion of vhost to use per-cpu IDA pre-allocation for descriptors, SGLs and userspace page pointer list - Conversion of iscsi-target + iser-target to use per-cpu IDA pre-allocation for descriptors - Add support for generic COMPARE_AND_WRITE (AtomicTestandSet) emulation for virtual backend drivers - Add support for generic EXTENDED_COPY (CopyOffload) emulation for virtual backend drivers. - Add support for fast memory registration mode to iser-target (Vu) The patches to add COMPARE_AND_WRITE and EXTENDED_COPY support are of particular significance, which make us the first and only open source target to support the full set of VAAI primitives. Currently Linux clients are lacking upstream support to actually utilize these primitives. However, with server side support now in place for folks like MKP + ZAB working on the client, this logic once reserved for the highest end of storage arrays, can now be run in VMs on their laptops" * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (50 commits) target/iscsi: Bump versions to v4.1.0 target: Update copyright ownership/year information to 2013 iscsi-target: Bump default TCP listen backlog to 256 target: Fix >= v3.9+ regression in PR APTPL + ALUA metadata write-out iscsi-target; Bump default CmdSN Depth to 64 iscsi-target: Remove unnecessary wait_for_completion in iscsi_get_thread_set iscsi-target: Add thread_set->ts_activate_sem + use common deallocate iscsi-target: Fix race with thread_pre_handler flush_signals + ISCSI_THREAD_SET_DIE target: remove unused including <linux/version.h> iser-target: introduce fast memory registration mode (FRWR) iser-target: generalize rdma memory registration and cleanup iser-target: move rdma wr processing to a shared function target: Enable global EXTENDED_COPY setup/release target: Add Third Party Copy (3PC) bit in INQUIRY response target: Enable EXTENDED_COPY setup in spc_parse_cdb target: Add support for EXTENDED_COPY copy offload emulation target: Avoid non-existent tg_pt_gp_mem in target_alua_state_check target: Add global device list for EXTENDED_COPY target: Make helpers non static for EXTENDED_COPY command setup target: Make spc_parse_naa_6h_vendor_specific non static ...
2013-09-10target/iscsi: Bump versions to v4.1.0Nicholas Bellinger1-1/+1
Signed-off-by: Nicholas Bellinger <[email protected]>
2013-09-10target: Update copyright ownership/year information to 2013Nicholas Bellinger37-75/+39
Update copyright ownership/year information for target-core, loopback, iscsi-target, tcm_qla2xx, vhost and iser-target. Signed-off-by: Nicholas Bellinger <[email protected]>
2013-09-10iscsi-target: Bump default TCP listen backlog to 256Nicholas Bellinger2-1/+2
This patch bumps the default TCP listen backlog within iscsit_setup_np() from 5 to 256, in order to reduce the overall latency caused by a small backlog with 100's of simultaneous login attempts directed to the same single network portal. Also add a ISCSIT_TCP_BACKLOG macro in iscsi_target_core.h. Signed-off-by: Nicholas Bellinger <[email protected]>
2013-09-10target: Fix >= v3.9+ regression in PR APTPL + ALUA metadata write-outGera Kazakov2-2/+2
This patch fixes a >= v3.9+ regression in __core_scsi3_write_aptpl_to_file() + core_alua_write_tpg_metadata() write-out, where a return value of -EIO was incorrectly being returned upon success. This bug was originally introduced in: commit 0e9b10a90f1c30f25dd6f130130240745ab14010 Author: Al Viro <[email protected]> Date: Sat Feb 23 15:22:43 2013 -0500 target: writev() on single-element vector is pointless However, given that the return of core_scsi3_update_and_write_aptpl() was not used to determine if a command should be returned with non GOOD status, this bug was not being triggered in PR logic until v3.11-rc1 by commit: commit 459f213ba162bd13e113d6f92a8fa6c780fd67ed Author: Andy Grover <[email protected]> Date: Thu May 16 10:41:02 2013 -0700 target: Allocate aptpl_buf inside update_and_write_aptpl() So, go ahead and only return -EIO if kernel_write() returned a negative value. Reported-by: Gera Kazakov <[email protected]> Signed-off-by: Gera Kazakov <[email protected]> Cc: Al Viro <[email protected]> Cc: Andy Grover <[email protected]> Cc: [email protected] # 3.9+ Signed-off-by: Nicholas Bellinger <[email protected]>
2013-09-10iscsi-target; Bump default CmdSN Depth to 64Nicholas Bellinger1-1/+1
This patch bumps the default TA_DEFAULT_CMDSN_DEPTH from 16 -> 64, which is closer to a sane default for larger pipes @ 10 Gb/sec with traditional iSCSI, or @ 40/56 Gb/sec Ethernet/Infiniband with iSCSI Extentions for RDMA. There is really no downside to increasing this default value for 1 Gb/sec. Signed-off-by: Nicholas Bellinger <[email protected]>