<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/target/target_core_iblock.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-12T21:44:54Z</updated>
<entry>
<title>target: Pass through I/O topology for block backstores</title>
<updated>2013-11-12T21:44:54Z</updated>
<author>
<name>Andy Grover</name>
</author>
<published>2013-11-11T16:59:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7f7caf6aa74a4f4ad21ebe08bf23b594fce45ca7'/>
<id>urn:sha1:7f7caf6aa74a4f4ad21ebe08bf23b594fce45ca7</id>
<content type='text'>
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 &lt;agrover@redhat.com&gt;
Acked-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Update copyright ownership/year information to 2013</title>
<updated>2013-09-11T03:23:36Z</updated>
<author>
<name>Nicholas Bellinger</name>
</author>
<published>2013-09-05T22:29:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4c76251e8e8f704ed7eace603a8041458a1ed16f'/>
<id>urn:sha1:4c76251e8e8f704ed7eace603a8041458a1ed16f</id>
<content type='text'>
Update copyright ownership/year information for target-core,
loopback, iscsi-target, tcm_qla2xx, vhost and iser-target.

Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Allow sbc_ops-&gt;execute_rw() to accept SGLs + data_direction</title>
<updated>2013-09-09T21:29:28Z</updated>
<author>
<name>Nicholas Bellinger</name>
</author>
<published>2013-08-20T06:57:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a82a9538dd30471e6428a2d55e91e986c439866b'/>
<id>urn:sha1:a82a9538dd30471e6428a2d55e91e986c439866b</id>
<content type='text'>
COMPARE_AND_WRITE expects to be able to send down a DMA_FROM_DEVICE
to obtain the necessary READ payload for comparision against the
first half of the WRITE payload containing the verify user data.

Currently virtual backends expect to internally reference SGLs,
SGL nents, and data_direction, so change IBLOCK, FILEIO and RD
sbc_ops-&gt;execute_rw() to accept this values as function parameters.

Also add default sbc_execute_rw() handler for the typical case for
cmd-&gt;execute_rw() submission using cmd-&gt;t_data_sg, cmd-&gt;t_data_nents,
and cmd-&gt;data_direction).

v2 Changes:
  - Add SCF_COMPARE_AND_WRITE command flag
  - Use sbc_execute_rw() for normal cmd-&gt;execute_rw() submission
    with expected se_cmd members.

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: replace strict_strto*() with kstrto*()</title>
<updated>2013-08-13T03:31:44Z</updated>
<author>
<name>Jingoo Han</name>
</author>
<published>2013-07-19T07:22:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=57103d7fe1833857cf542a482c1eb8da0bf86e5d'/>
<id>urn:sha1:57103d7fe1833857cf542a482c1eb8da0bf86e5d</id>
<content type='text'>
The usage of strict_strtoul() and strict_strtoull() is not preferred,
because strict_strtoul() and strict_strtoull() are obsolete. Thus,
kstrtoul() and kstrtoull() should be used.

v2: Fix incorrect return in ft_add_tpg (Fengguang)

Signed-off-by: Jingoo Han &lt;jg1.han@samsung.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target/iblock: Fix WCE=1 + DPOFUA=1 backend WRITE regression</title>
<updated>2013-05-15T08:46:34Z</updated>
<author>
<name>Nicholas Bellinger</name>
</author>
<published>2013-05-15T06:41:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d2bdbee0d91a5d3ba2e439ce889e20bfe6fd4f1b'/>
<id>urn:sha1:d2bdbee0d91a5d3ba2e439ce889e20bfe6fd4f1b</id>
<content type='text'>
This patch fixes a regression bug introduced in v3.9-rc1 where if the
underlying struct block_device for a IBLOCK backend is configured with
WCE=1 + DPOFUA=1 settings, the rw = WRITE assignment no longer occurs
in iblock_execute_rw(), and rw = 0 is passed to iblock_submit_bios()
in effect causing a READ bio operation to occur.

The offending commit is:

commit d0c8b259f8970d39354c1966853363345d401330
Author: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Date:   Tue Jan 29 22:10:06 2013 -0800

    target/iblock: Use backend REQ_FLUSH hint for WriteCacheEnabled status

Note the WCE=1 + DPOFUA=0, WCE=0 + DPOFUA=1, and WCE=0 + DPOFUA=0 cases
are not affected by this regression bug.

Reported-by: Chris Boot &lt;bootc@bootc.net&gt;
Tested-by: Chris Boot &lt;bootc@bootc.net&gt;
Reported-by: Hannes Reinecke &lt;hare@suse.de&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Add sbc_execute_unmap() helper</title>
<updated>2013-04-25T08:05:24Z</updated>
<author>
<name>Asias He</name>
</author>
<published>2013-02-25T06:03:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=86d7182985d25900929adce14fffd729cc8c6fb8'/>
<id>urn:sha1:86d7182985d25900929adce14fffd729cc8c6fb8</id>
<content type='text'>
iblock_execute_unmap() and fd_execute_unmap share a lot of code.
Add sbc_execute_unmap() helper to remove duplicated code for
iblock_execute_unmap() and fd_execute_unmap().

Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Cc: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Asias He &lt;asias@redhat.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target/iblock: Add iblock_do_unmap() helper</title>
<updated>2013-04-25T08:05:24Z</updated>
<author>
<name>Asias He</name>
</author>
<published>2013-02-25T06:03:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dbc21c5abbeb4419da5a54157c4b7a0ec0dee185'/>
<id>urn:sha1:dbc21c5abbeb4419da5a54157c4b7a0ec0dee185</id>
<content type='text'>
Add helper iblock_do_unmap() to remove duplicated code in
iblock_execute_write_same_unmap() and iblock_execute_unmap().

Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Cc: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Asias He &lt;asias@redhat.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Add __exit annotation for module_exit functions</title>
<updated>2013-02-28T03:12:10Z</updated>
<author>
<name>Asias He</name>
</author>
<published>2013-02-27T04:50:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=63b91d5a492ae1cdc1ba0a0a45024718f6d1437f'/>
<id>urn:sha1:63b91d5a492ae1cdc1ba0a0a45024718f6d1437f</id>
<content type='text'>
Inclues sbp_exit, fileio_module_exit, iblock_module_exit and
pscsi_module_exit.

Note: rd_module_exit() can not be annotated by __exit, becasue it is
called by target_core_init_configfs() which is annotated by __init.

Signed-off-by: Asias He &lt;asias@redhat.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Rename spc_get_write_same_sectors -&gt; sbc_get_write_same_sectors</title>
<updated>2013-02-23T20:46:14Z</updated>
<author>
<name>Roland Dreier</name>
</author>
<published>2013-02-22T17:52:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=972b29c8f86093f44e1d781588bd5c5faae3d8e3'/>
<id>urn:sha1:972b29c8f86093f44e1d781588bd5c5faae3d8e3</id>
<content type='text'>
Trivial, but WRITE SAME is an SBC command so it seems strange for a
related function (defined in target_core_sbc.c) to be in the spc_
namespace.

Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Fix error checking for UNMAP commands</title>
<updated>2013-02-13T20:16:05Z</updated>
<author>
<name>Roland Dreier</name>
</author>
<published>2013-02-08T23:18:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bb992e72f9b751fceb04afeb7736b6a3e50effcf'/>
<id>urn:sha1:bb992e72f9b751fceb04afeb7736b6a3e50effcf</id>
<content type='text'>
SBC-3 (revision 35) says:

    The PARAMETER LIST LENGTH field specifies the length in bytes of the
    UNMAP parameter list that is available to be transferred from the
    Data-Out Buffer. If the parameter list length is greater than zero
    and less than 0008h (i.e., eight), then the device server shall
    terminate the command with CHECK CONDITION status with the sense key
    set to ILLEGAL REQUEST and the additional sense code set to
    PARAMETER LIST LENGTH ERROR. A PARAMETER LIST LENGTH set to zero
    specifies that no data shall be sent.

so our sense code for too-short descriptors was wrong, and we were
incorrectly failing commands that didn't transfer any descriptors.

While we're at it, also handle the UNMAP check:

    If the ANCHOR bit is set to one, and the ANC_SUP bit in the Logical
    Block Provisioning VPD page (see 6.6.4) is set to zero, then the
    device server shall terminate the command with CHECK CONDITION
    status with the sense key set to ILLEGAL REQUEST and the additional
    sense code set to INVALID FIELD IN CDB.

(chris boot: Fix wrong cut+paste comment in transport_send_check_condition_and_sense)

Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
</feed>
