<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include/target, branch v3.12.10</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/include/target?h=v3.12.10</id>
<link rel='self' href='https://git.amat.us/linux/atom/include/target?h=v3.12.10'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2014-01-09T20:25:09Z</updated>
<entry>
<title>target/file: Update hw_max_sectors based on current block_size</title>
<updated>2014-01-09T20:25:09Z</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2013-12-12T20:24:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cd3f6dea647f4d5e49f44ae919966e18b0e63ac7'/>
<id>urn:sha1:cd3f6dea647f4d5e49f44ae919966e18b0e63ac7</id>
<content type='text'>
commit 95cadace8f3959282e76ebf8b382bd0930807d2c upstream.

This patch allows FILEIO to update hw_max_sectors based on the current
max_bytes_per_io.  This is required because vfs_[writev,readv]() can accept
a maximum of 2048 iovecs per call, so the enforced hw_max_sectors really
needs to be calculated based on block_size.

This addresses a &gt;= v3.5 bug where block_size=512 was rejecting &gt; 1M
sized I/O requests, because FD_MAX_SECTORS was hardcoded to 2048 for
the block_size=4096 case.

(v2: Use max_bytes_per_io instead of -&gt;update_hw_max_sectors)

Reported-by: Henrik Goldman &lt;hg@x-formation.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>target/iscsi: Bump versions to v4.1.0</title>
<updated>2013-09-11T03:23:37Z</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2013-09-05T22:50:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2999ee7fda3f670effbfa746164c525f9d1be4b8'/>
<id>urn:sha1:2999ee7fda3f670effbfa746164c525f9d1be4b8</id>
<content type='text'>
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Add Third Party Copy (3PC) bit in INQUIRY response</title>
<updated>2013-09-10T23:48:46Z</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@daterainc.com</email>
</author>
<published>2013-08-22T21:17:20Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d397a445f43c7ae9b35260f236a08d5b5760de3d'/>
<id>urn:sha1:d397a445f43c7ae9b35260f236a08d5b5760de3d</id>
<content type='text'>
This patch adds the Third Party Copy (3PC) bit to signal support
for EXTENDED_COPY within standard inquiry response data.

Also add emulate_3pc device attribute in configfs (enabled by default)
to allow the exposure of this bit to be disabled, if necessary.

Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Hannes Reinecke &lt;hare@suse.de&gt;
Cc: Martin Petersen &lt;martin.petersen@oracle.com&gt;
Cc: Chris Mason &lt;chris.mason@fusionio.com&gt;
Cc: Roland Dreier &lt;roland@purestorage.com&gt;
Cc: Zach Brown &lt;zab@redhat.com&gt;
Cc: James Bottomley &lt;JBottomley@Parallels.com&gt;
Cc: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@daterainc.com&gt;
</content>
</entry>
<entry>
<title>target: Add support for EXTENDED_COPY copy offload emulation</title>
<updated>2013-09-10T23:48:43Z</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@daterainc.com</email>
</author>
<published>2013-08-20T22:38:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cbf031f425fd0b30ff10ba83b612753189a6bbbf'/>
<id>urn:sha1:cbf031f425fd0b30ff10ba83b612753189a6bbbf</id>
<content type='text'>
This patch adds support for EXTENDED_COPY emulation from SPC-3, that
enables full copy offload target support within both a single virtual
backend device, and across multiple virtual backend devices.  It also
functions independent of target fabric, and supports copy offload
across multiple target fabric ports.

This implemenation supports both EXTENDED_COPY PUSH and PULL models
of operation, so the actual CDB may be received on either source or
desination logical unit.

For Target Descriptors, it currently supports the NAA IEEE Registered
Extended designator (type 0xe4), which allows the reference of target
ports to occur independent of fabric type using EVPD 0x83 WWNs.

For Segment Descriptors, it currently supports copy from block to
block (0x02) mode.

It also honors any present SCSI reservations of the destination target
port.  Note that only Supports No List Identifier (SNLID=1) mode is
supported.

Also included is basic RECEIVE_COPY_RESULTS with service action type
OPERATING PARAMETERS (0x03) required for SNLID=1 operation.

v3 changes:
  - Fix incorrect return type in target_do_receive_copy_results()
    (Fengguang)

v2 changes:
  - Use target_alloc_sgl() instead of transport_generic_get_mem()
  - Convert debug output to use pr_debug()
  - Convert target_xcopy_parse_target_descriptors() NAA IEEN WWN
    dump to use 0x%16phN format specification
  - Drop unnecessary xcopy_pt_cmd-&gt;xpt_passthrough_wsem, and
    associated usage in xcopy_pt_write_pending() and
    target_xcopy_issue_pt_cmd()
  - Add check for unsupported EXTENDED_COPY(LID4) service action
    bits in target_do_xcopy()

Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Hannes Reinecke &lt;hare@suse.de&gt;
Cc: Martin Petersen &lt;martin.petersen@oracle.com&gt;
Cc: Chris Mason &lt;chris.mason@fusionio.com&gt;
Cc: Roland Dreier &lt;roland@purestorage.com&gt;
Cc: Zach Brown &lt;zab@redhat.com&gt;
Cc: James Bottomley &lt;JBottomley@Parallels.com&gt;
Cc: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@daterainc.com&gt;
</content>
</entry>
<entry>
<title>target: Add global device list for EXTENDED_COPY</title>
<updated>2013-09-10T23:48:40Z</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@daterainc.com</email>
</author>
<published>2013-08-22T18:33:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d9ea32bff2c55d4cd4654f1e98d269a758f34534'/>
<id>urn:sha1:d9ea32bff2c55d4cd4654f1e98d269a758f34534</id>
<content type='text'>
EXTENDED_COPY needs to be able to search a global list of devices
based on NAA WWN device identifiers, so add a simple g_device_list
protected by g_device_mutex.

Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Hannes Reinecke &lt;hare@suse.de&gt;
Cc: Martin Petersen &lt;martin.petersen@oracle.com&gt;
Cc: Chris Mason &lt;chris.mason@fusionio.com&gt;
Cc: Roland Dreier &lt;roland@purestorage.com&gt;
Cc: Zach Brown &lt;zab@redhat.com&gt;
Cc: James Bottomley &lt;JBottomley@Parallels.com&gt;
Cc: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@daterainc.com&gt;
</content>
</entry>
<entry>
<title>target: Make helpers non static for EXTENDED_COPY command setup</title>
<updated>2013-09-10T23:48:39Z</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@daterainc.com</email>
</author>
<published>2013-08-22T18:58:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c5ff8d6bc3ebc363d77d71791080fefb07ae9017'/>
<id>urn:sha1:c5ff8d6bc3ebc363d77d71791080fefb07ae9017</id>
<content type='text'>
Both target_alloc_sgl() and transport_generic_map_mem_to_cmd() are
required by EXTENDED_COPY logic when setting up internally dispatched
command descriptors, so go ahead and make both of these non static.

Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Hannes Reinecke &lt;hare@suse.de&gt;
Cc: Martin Petersen &lt;martin.petersen@oracle.com&gt;
Cc: Chris Mason &lt;chris.mason@fusionio.com&gt;
Cc: Roland Dreier &lt;roland@purestorage.com&gt;
Cc: Zach Brown &lt;zab@redhat.com&gt;
Cc: James Bottomley &lt;JBottomley@Parallels.com&gt;
Cc: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@daterainc.com&gt;
</content>
</entry>
<entry>
<title>target/tcm_qla2xxx: Add/use target_reverse_dma_direction() in target_core_fabric.h</title>
<updated>2013-09-10T23:48:35Z</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@daterainc.com</email>
</author>
<published>2013-08-21T21:54:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b3faa2e87ce04e48f16f3823977329b7c367b3f9'/>
<id>urn:sha1:b3faa2e87ce04e48f16f3823977329b7c367b3f9</id>
<content type='text'>
Reversing the dma_data_direction for pci_map_sg() friends is useful
for other drivers, so move it from tcm_qla2xxx into inline code
within target_core_fabric.h.

Also drop internal usage of equivlient in tcm_qla2xxx fabric code.

Reported-by: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Roland Dreier &lt;roland@purestorage.com&gt;
Cc: Giridhar Malavali &lt;giridhar.malavali@qlogic.com&gt;
Cc: Chad Dupuis &lt;chad.dupuis@qlogic.com&gt;
Cc: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@daterainc.com&gt;
</content>
</entry>
<entry>
<title>target: Add support for COMPARE_AND_WRITE emulation</title>
<updated>2013-09-10T23:41:59Z</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@daterainc.com</email>
</author>
<published>2013-08-19T22:20:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=68ff9b9b27525cdaaea81890456f65aed5ce0b70'/>
<id>urn:sha1:68ff9b9b27525cdaaea81890456f65aed5ce0b70</id>
<content type='text'>
This patch adds support for COMPARE_AND_WRITE emulation on a per block
basis.  This logic is used as an atomic test and set primative currently
used by VMWare ESX VAAI for performing array side locking of individual
VMFS extent ownership.

This includes the COMPARE_AND_WRITE CDB parsing within sbc_parse_cdb(),
and does the majority of the work within the compare_and_write_callback()
to perform the verify instance user data comparision, and subsequent
write instance user data I/O submission upon a successfull comparision.

The synchronization is enforced by se_device-&gt;caw_sem, that is obtained
before the initial READ I/O submission in sbc_compare_and_write().  The
mutex is then released upon MISCOMPARE in compare_and_write_callback(),
or upon WRITE instance user-data completion in compare_and_write_post().

The implementation currently assumes a single logical block (NoLB=1).

v4 changes:
 - Explicitly clear cmd-&gt;transport_complete_callback for two failure
   cases in sbc_compare_and_write() in order to avoid double unlock
   of -&gt;caw_sem in compare_and_write_callback() (Dan Carpenter)

v3 changes:
 - Convert se_device-&gt;caw_mutex to -&gt;caw_sem

v2 changes:
 - Set SCF_COMPARE_AND_WRITE and cmd-&gt;execute_cmd() to
   sbc_compare_and_write() during setup in sbc_parse_cdb()
 - Use sbc_compare_and_write() for initial READ submission with
   DMA_FROM_DEVICE
 - Reset cmd-&gt;execute_cmd() to sbc_execute_rw() for write instance
   user-data in compare_and_write_callback()
 - Drop SCF_BIDI command flag usage
 - Set TRANSPORT_PROCESSING + transport_state flags before write
   instance submission, and convert to __target_execute_cmd()
 - Prevent sbc_get_size() from being being called twice to
   generate incorrect size in sbc_parse_cdb()
 - Enforce se_device-&gt;caw_mutex synchronization between initial
   READ I/O submission, and final WRITE I/O completion.

Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Hannes Reinecke &lt;hare@suse.de&gt;
Cc: Martin Petersen &lt;martin.petersen@oracle.com&gt;
Cc: Chris Mason &lt;chris.mason@fusionio.com&gt;
Cc: James Bottomley &lt;JBottomley@Parallels.com&gt;
Cc: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@daterainc.com&gt;
</content>
</entry>
<entry>
<title>target: Add MAXIMUM COMPARE AND WRITE LENGTH in Block Limits VPD</title>
<updated>2013-09-09T21:29:35Z</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@daterainc.com</email>
</author>
<published>2013-08-20T21:24:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0123a9ec6a4fea20d5afea90c9b47fb73fb1bc34'/>
<id>urn:sha1:0123a9ec6a4fea20d5afea90c9b47fb73fb1bc34</id>
<content type='text'>
This patch adds the MAXIMUM COMPARE AND WRITE LENGTH bit, currently
hardcoded to a single logical block (NoLB=1) within the Block Limits
VPD in spc_emulate_evpd_b0().

Also add emulate_caw device attribute in configfs (enabled by default)
to allow the exposure of this bit to be disabled, if necessary.

Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Hannes Reinecke &lt;hare@suse.de&gt;
Cc: Martin Petersen &lt;martin.petersen@oracle.com&gt;
Cc: Chris Mason &lt;chris.mason@fusionio.com&gt;
Cc: James Bottomley &lt;JBottomley@Parallels.com&gt;
Cc: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@daterainc.com&gt;
</content>
</entry>
<entry>
<title>target: Make __target_execute_cmd() available as extern</title>
<updated>2013-09-09T21:29:34Z</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@daterainc.com</email>
</author>
<published>2013-08-21T23:04:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=76dde50ebef75773ea2b68e0bf914e87e6a3711c'/>
<id>urn:sha1:76dde50ebef75773ea2b68e0bf914e87e6a3711c</id>
<content type='text'>
Required by COMPARE_AND_WRITE for write instance user-data
submission, in order to bypass target_execute_cmd() checks.

Reported-by: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Roland Dreier &lt;roland@purestorage.com&gt;
Cc: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@daterainc.com&gt;
</content>
</entry>
</feed>
