<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/target/target_core_xcopy.c, branch linux-3.13.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.13.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.13.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2013-11-22T18:52:03Z</updated>
<entry>
<title>Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending</title>
<updated>2013-11-22T18:52:03Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2013-11-22T18:52:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b0e3636f656c98bdeded5aaa78601e3256b18d6d'/>
<id>urn:sha1:b0e3636f656c98bdeded5aaa78601e3256b18d6d</id>
<content type='text'>
Pull SCSI target updates from Nicholas Bellinger:
 "Things have been quiet this round with mostly bugfixes, percpu
  conversions, and other minor iscsi-target conformance testing changes.

  The highlights include:

   - Add demo_mode_discovery attribute for iscsi-target (Thomas)
   - Convert tcm_fc(FCoE) to use percpu-ida pre-allocation
   - Add send completion interrupt coalescing for ib_isert
   - Convert target-core to use percpu-refcounting for se_lun
   - Fix mutex_trylock usage bug in iscsit_increment_maxcmdsn
   - tcm_loop updates (Hannes)
   - target-core ALUA cleanups + prep for v3.14 SCSI Referrals support (Hannes)

  v3.14 is currently shaping to be a busy development cycle in target
  land, with initial support for T10 Referrals and T10 DIF currently on
  the roadmap"

* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (40 commits)
  iscsi-target: chap auth shouldn't match username with trailing garbage
  iscsi-target: fix extract_param to handle buffer length corner case
  iscsi-target: Expose default_erl as TPG attribute
  target_core_configfs: split up ALUA supported states
  target_core_alua: Make supported states configurable
  target_core_alua: Store supported ALUA states
  target_core_alua: Rename ALUA_ACCESS_STATE_OPTIMIZED
  target_core_alua: spellcheck
  target core: rename (ex,im)plict -&gt; (ex,im)plicit
  percpu-refcount: Add percpu-refcount.o to obj-y
  iscsi-target: Do not reject non-immediate CmdSNs exceeding MaxCmdSN
  iscsi-target: Convert iscsi_session statistics to atomic_long_t
  target: Convert se_device statistics to atomic_long_t
  target: Fix delayed Task Aborted Status (TAS) handling bug
  iscsi-target: Reject unsupported multi PDU text command sequence
  ib_isert: Avoid duplicate iscsit_increment_maxcmdsn call
  iscsi-target: Fix mutex_trylock usage in iscsit_increment_maxcmdsn
  target: Core does not need blkdev.h
  target: Pass through I/O topology for block backstores
  iser-target: Avoid using FRMR for single dma entry requests
  ...
</content>
</entry>
<entry>
<title>target: Add per device xcopy_lun for copy offload I/O</title>
<updated>2013-11-08T21:13:38Z</updated>
<author>
<name>Nicholas Bellinger</name>
</author>
<published>2013-11-08T21:10:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4863e525659abbc903aacc67fd916f12914f6c1d'/>
<id>urn:sha1:4863e525659abbc903aacc67fd916f12914f6c1d</id>
<content type='text'>
This patch adds a se_device-&gt;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 &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Drop left-over se_lun-&gt;lun_cmd_list shutdown code</title>
<updated>2013-11-07T22:25:02Z</updated>
<author>
<name>Nicholas Bellinger</name>
</author>
<published>2013-11-07T05:05:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4a9a6c8d538eff6d627fa14409c7c25aff652541'/>
<id>urn:sha1:4a9a6c8d538eff6d627fa14409c7c25aff652541</id>
<content type='text'>
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 -&gt;transport_state bits.

Cc: Kent Overstreet &lt;kmo@daterainc.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Add percpu refcounting for se_lun access</title>
<updated>2013-11-07T22:24:52Z</updated>
<author>
<name>Nicholas Bellinger</name>
</author>
<published>2013-11-07T05:03:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5277797dc4ed873d067477d84e910b39d113f649'/>
<id>urn:sha1:5277797dc4ed873d067477d84e910b39d113f649</id>
<content type='text'>
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-&gt;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 &lt;kmo@daterainc.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Fail XCOPY for non matching source + destination block_size</title>
<updated>2013-10-24T07:28:52Z</updated>
<author>
<name>Nicholas Bellinger</name>
</author>
<published>2013-10-24T07:27:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=48502ddbfb9840803f633ff81eee507e0fdae7c5'/>
<id>urn:sha1:48502ddbfb9840803f633ff81eee507e0fdae7c5</id>
<content type='text'>
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 &lt;thomas@glanzmann.de&gt;
Reported-by: Douglas Gilbert &lt;dgilbert@interlog.com&gt;
Cc: Thomas Glanzmann &lt;thomas@glanzmann.de&gt;
Cc: Douglas Gilbert &lt;dgilbert@interlog.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Generate failure for XCOPY I/O with non-zero scsi_status</title>
<updated>2013-10-24T07:28:27Z</updated>
<author>
<name>Nicholas Bellinger</name>
</author>
<published>2013-10-24T07:15:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8a955d6dcc1840fa9cba73eb6db831c8fea19d95'/>
<id>urn:sha1:8a955d6dcc1840fa9cba73eb6db831c8fea19d95</id>
<content type='text'>
This patch adds the missing non-zero se_cmd-&gt;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 &lt;thomas@glanzmann.de&gt;
Reported-by: Douglas Gilbert &lt;dgilbert@interlog.com&gt;
Cc: Thomas Glanzmann &lt;thomas@glanzmann.de&gt;
Cc: Douglas Gilbert &lt;dgilbert@interlog.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Add missing XCOPY I/O operation sense_buffer</title>
<updated>2013-10-24T07:28:08Z</updated>
<author>
<name>Nicholas Bellinger</name>
</author>
<published>2013-10-24T07:10:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=366bda191c344ec4d7a5b908cf047bc09639ad3d'/>
<id>urn:sha1:366bda191c344ec4d7a5b908cf047bc09639ad3d</id>
<content type='text'>
This patch adds the missing xcopy_pt_cmd-&gt;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-&gt;sense_buffer.

Reported-by: Thomas Glanzmann &lt;thomas@glanzmann.de&gt;
Reported-by: Douglas Gilbert &lt;dgilbert@interlog.com&gt;
Cc: Thomas Glanzmann &lt;thomas@glanzmann.de&gt;
Cc: Douglas Gilbert &lt;dgilbert@interlog.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Reject EXTENDED_COPY when emulate_3pc is disabled</title>
<updated>2013-10-09T08:54:44Z</updated>
<author>
<name>Nicholas Bellinger</name>
</author>
<published>2013-10-08T01:05:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=acb3f2600eb8cdd35643a8b9237719ce61c98d41'/>
<id>urn:sha1:acb3f2600eb8cdd35643a8b9237719ce61c98d41</id>
<content type='text'>
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 &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Allow non zero ListID in EXTENDED_COPY parameter list</title>
<updated>2013-10-09T08:54:43Z</updated>
<author>
<name>Nicholas Bellinger</name>
</author>
<published>2013-10-07T22:22:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3f7a46c67440a7fa422919ab2059cbab838ca558'/>
<id>urn:sha1:3f7a46c67440a7fa422919ab2059cbab838ca558</id>
<content type='text'>
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 &lt;thomas@glanzmann.de&gt;
Reported-by: Douglas Gilbert &lt;dgilbert@interlog.com&gt;
Cc: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Make target_do_xcopy failures return INVALID_PARAMETER_LIST</title>
<updated>2013-10-09T08:54:43Z</updated>
<author>
<name>Nicholas Bellinger</name>
</author>
<published>2013-10-07T22:20:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=934a138e970e5af73d6f79469a1eb363572abbaa'/>
<id>urn:sha1:934a138e970e5af73d6f79469a1eb363572abbaa</id>
<content type='text'>
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 &lt;thomas@glanzmann.de&gt;
Reported-by: Douglas Gilbert &lt;dgilbert@interlog.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
</feed>
