<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/include/target/target_core_backend.h, branch v3.13.3</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v3.13.3</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v3.13.3'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2013-11-12T21:44:54+00:00</updated>
<entry>
<title>target: Pass through I/O topology for block backstores</title>
<updated>2013-11-12T21:44:54+00:00</updated>
<author>
<name>Andy Grover</name>
<email>agrover@redhat.com</email>
</author>
<published>2013-11-11T16:59:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.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: Make helpers non static for EXTENDED_COPY command setup</title>
<updated>2013-09-10T23:48:39+00:00</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@daterainc.com</email>
</author>
<published>2013-08-22T18:58:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/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: Allow sbc_ops-&gt;execute_rw() to accept SGLs + data_direction</title>
<updated>2013-09-09T21:29:28+00:00</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@daterainc.com</email>
</author>
<published>2013-08-20T06:57:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.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: Add sbc_execute_unmap() helper</title>
<updated>2013-04-25T08:05:24+00:00</updated>
<author>
<name>Asias He</name>
<email>asias@redhat.com</email>
</author>
<published>2013-02-25T06:03:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.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: Rename spc_get_write_same_sectors -&gt; sbc_get_write_same_sectors</title>
<updated>2013-02-23T20:46:14+00:00</updated>
<author>
<name>Roland Dreier</name>
<email>roland@purestorage.com</email>
</author>
<published>2013-02-22T17:52:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.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/iblock: Use backend REQ_FLUSH hint for WriteCacheEnabled status</title>
<updated>2013-02-13T19:27:51+00:00</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2013-01-30T06:10:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=d0c8b259f8970d39354c1966853363345d401330'/>
<id>urn:sha1:d0c8b259f8970d39354c1966853363345d401330</id>
<content type='text'>
This patch allows IBLOCK to check block hints in request_queue-&gt;flush_flags
when reporting current backend device WriteCacheEnabled status to a remote
SCSI initiator port.

This is done via a se_subsystem_api-&gt;get_write_cache() call instead of a
backend se_device creation time flag, as we expect REQ_FLUSH bits to possibly
change from an underlying blk_queue_flush() by the SCSI disk driver, or
internal raw struct block_device driver usage.

Also go ahead and update iblock_execute_rw() bio I/O path code to use
REQ_FLUSH + REQ_FUA hints when determining WRITE_FUA usage, and make SPC
emulation code use a spc_check_dev_wce() helper to handle both types of
cases for virtual backend subsystem drivers.

(asias: Drop unnecessary comparsion operators)

Reported-by: majianpeng &lt;majianpeng@gmail.com&gt;
Cc: majianpeng &lt;majianpeng@gmail.com&gt;
Cc: Christoph Hellwig &lt;hch@infradead.org&gt;
Cc: Jens Axboe &lt;axboe@kernel.dk&gt;
Cc: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Export SPC inquiry emulation</title>
<updated>2013-02-13T19:27:22+00:00</updated>
<author>
<name>Hannes Reinecke</name>
<email>hare@suse.de</email>
</author>
<published>2012-12-17T08:53:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0dfa1c5da3e4b6849d40f4c3fc43212b6359a09d'/>
<id>urn:sha1:0dfa1c5da3e4b6849d40f4c3fc43212b6359a09d</id>
<content type='text'>
Some target drivers might need to access the inquiry data
directly, without sending out the actual command.
So export these functions.

Signed-off-by: Hannes Reinecke &lt;hare@suse.de&gt;
Cc: Nicholas Bellinger &lt;nab@risingtidesystems.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>target: Make spc_get_write_same_sectors return sector_t</title>
<updated>2012-11-28T06:49:25+00:00</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2012-11-28T03:07:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ffe0067544f93c0e71c793d7f17240486d091a3c'/>
<id>urn:sha1:ffe0067544f93c0e71c793d7f17240486d091a3c</id>
<content type='text'>
We already expect TFO-&gt;get_blocks() to return sector_t for zero value case
when doing WRITE_SAME to the end of the backend device, so go ahead and return
sector_t from spc_get_write_same_sectors() to handle this case properly.

Also, update the single iblock_execute_write_same() caller of this code.

Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: 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/sbc: Seperate WRITE_SAME based on UNMAP flag in sbc_ops</title>
<updated>2012-11-15T20:04:52+00:00</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2012-11-08T04:01:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=cd063bef414c51d79b9c6ea7a8ef8f9d319529bc'/>
<id>urn:sha1:cd063bef414c51d79b9c6ea7a8ef8f9d319529bc</id>
<content type='text'>
This patch adds a new sbc_ops-&gt;execute_write_same_unmap() caller for use
with WRITE_SAME w/ UNMAP=1, and performs the -&gt;execute_cmd() setup based
this bit within sbc_setup_write_same() code.

Also, makes the changes in sbc_parse_cdb() to handle a sense_reason_t
return from sbc_setup_write_same() on error.

Reported-by: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: 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: pass sense_reason as a return value</title>
<updated>2012-11-07T04:55:46+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2012-11-06T20:24:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=de103c93aff0bed0ae984274e5dc8b95899badab'/>
<id>urn:sha1:de103c93aff0bed0ae984274e5dc8b95899badab</id>
<content type='text'>
Pass the sense reason as an explicit return value from the I/O submission
path instead of storing it in struct se_cmd and using negative return
values.  This cleans up a lot of the code pathes, and with the sparse
annotations for the new sense_reason_t type allows for much better
error checking.

(nab: Convert spc_emulate_modesense + spc_emulate_modeselect to use
      sense_reason_t with Roland's MODE SELECT changes)

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