<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include/scsi, branch v3.2.41</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/include/scsi?h=v3.2.41</id>
<link rel='self' href='https://git.amat.us/linux/atom/include/scsi?h=v3.2.41'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-07-25T03:11:12Z</updated>
<entry>
<title>libsas: fix taskfile corruption in sas_ata_qc_fill_rtf</title>
<updated>2012-07-25T03:11:12Z</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2012-06-22T17:52:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cb480c94c8e89014cdb54201a413bf9d36f6cd41'/>
<id>urn:sha1:cb480c94c8e89014cdb54201a413bf9d36f6cd41</id>
<content type='text'>
commit 6ef1b512f4e6f936d89aa20be3d97a7ec7c290ac upstream.

fill_result_tf() grabs the taskfile flags from the originating qc which
sas_ata_qc_fill_rtf() promptly overwrites.  The presence of an
ata_taskfile in the sata_device makes it tempting to just copy the full
contents in sas_ata_qc_fill_rtf().  However, libata really only wants
the fis contents and expects the other portions of the taskfile to not
be touched by -&gt;qc_fill_rtf.  To that end store a fis buffer in the
sata_device and use ata_tf_from_fis() like every other -&gt;qc_fill_rtf()
implementation.

Reported-by: Praveen Murali &lt;pmurali@logicube.com&gt;
Tested-by: Praveen Murali &lt;pmurali@logicube.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>[SCSI] fcoe: fix fcoe in a DCB environment by adding DCB notifiers to set skb priority</title>
<updated>2011-12-15T07:02:07Z</updated>
<author>
<name>john fastabend</name>
<email>john.r.fastabend@intel.com</email>
</author>
<published>2011-11-18T21:35:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6f6c2aa33b915c574543f176dee89d7aefc115c1'/>
<id>urn:sha1:6f6c2aa33b915c574543f176dee89d7aefc115c1</id>
<content type='text'>
Use DCB notifiers to set the skb priority to allow packets
to be steered and tagged correctly over DCB enabled drivers
that setup traffic classes.

This allows queue_mapping() routines to be removed in these
drivers that were previously inspecting the ethertype of
every skb to mark FCoE/FIP frames.

Signed-off-by: John Fastabend &lt;john.r.fastabend@intel.com&gt;
Signed-off-by: Robert Love &lt;robert.w.love@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6</title>
<updated>2011-10-28T23:44:18Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-10-28T23:44:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ec7ae517537ae5c7b0b2cd7f562dfa3e7a05b954'/>
<id>urn:sha1:ec7ae517537ae5c7b0b2cd7f562dfa3e7a05b954</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (204 commits)
  [SCSI] qla4xxx: export address/port of connection (fix udev disk names)
  [SCSI] ipr: Fix BUG on adapter dump timeout
  [SCSI] megaraid_sas: Fix instance access in megasas_reset_timer
  [SCSI] hpsa: change confusing message to be more clear
  [SCSI] iscsi class: fix vlan configuration
  [SCSI] qla4xxx: fix data alignment and use nl helpers
  [SCSI] iscsi class: fix link local mispelling
  [SCSI] iscsi class: Replace iscsi_get_next_target_id with IDA
  [SCSI] aacraid: use lower snprintf() limit
  [SCSI] lpfc 8.3.27: Change driver version to 8.3.27
  [SCSI] lpfc 8.3.27: T10 additions for SLI4
  [SCSI] lpfc 8.3.27: Fix queue allocation failure recovery
  [SCSI] lpfc 8.3.27: Change algorithm for getting physical port name
  [SCSI] lpfc 8.3.27: Changed worst case mailbox timeout
  [SCSI] lpfc 8.3.27: Miscellanous logic and interface fixes
  [SCSI] megaraid_sas: Changelog and version update
  [SCSI] megaraid_sas: Add driver workaround for PERC5/1068 kdump kernel panic
  [SCSI] megaraid_sas: Add multiple MSI-X vector/multiple reply queue support
  [SCSI] megaraid_sas: Add support for MegaRAID 9360/9380 12GB/s controllers
  [SCSI] megaraid_sas: Clear FUSION_IN_RESET before enabling interrupts
  ...
</content>
</entry>
<entry>
<title>ore: RAID5 Write</title>
<updated>2011-10-25T00:15:33Z</updated>
<author>
<name>Boaz Harrosh</name>
<email>bharrosh@panasas.com</email>
</author>
<published>2011-10-14T13:33:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=769ba8d92025fa390f3097e658b8ed6e032d68e9'/>
<id>urn:sha1:769ba8d92025fa390f3097e658b8ed6e032d68e9</id>
<content type='text'>
This is finally the RAID5 Write support.

The bigger part of this patch is not the XOR engine itself, But the
read4write logic, which is a complete mini prepare_for_striping
reading engine that can read scattered pages of a stripe into cache
so it can be used for XOR calculation. That is, if the write was not
stripe aligned.

The main algorithm behind the XOR engine is the 2 dimensional array:
	struct __stripe_pages_2d.
A drawing might save 1000 words
---

__stripe_pages_2d
       |
 n = pages_in_stripe_unit;
 w = group_width - parity;
       |                            pages array presented to the XOR lib
       |                                                |
       V                                                |
 __1_page_stripe[0].pages --&gt; [c0][c1]..[cw][c_par] &lt;---|
       |                                                |
 __1_page_stripe[1].pages --&gt; [c0][c1]..[cw][c_par] &lt;---
       |
...    |                         ...
       |
 __1_page_stripe[n].pages --&gt; [c0][c1]..[cw][c_par]
                               ^
                               |
           data added columns first then row

---
The pages are put on this array columns first. .i.e:
	p0-of-c0, p1-of-c0, ... pn-of-c0, p0-of-c1, ...
So we are doing a corner turn of the pages.

Note that pages will zigzag down and left. but are put sequentially
in growing order. So when the time comes to XOR the stripe, only the
beginning and end of the array need be checked. We scan the array
and any NULL spot will be field by pages-to-be-read.

The FS that wants to support RAID5 needs to supply an
operations-vector that searches a given page in cache, and specifies
if the page is uptodate or need reading. All these pages to be read
are put on a slave ore_io_state and synchronously read. All the pages
of a stripe are read in one IO, using the scatter gather mechanism.

In write we constrain our IO to only be incomplete on a single
stripe. Meaning either the complete IO is within a single stripe so
we might have pages to read from both beginning  or end of the
strip. Or we have some reading to do at beginning but end at strip
boundary. The left over pages are pushed to the next IO by the API
already established by previous work, where an IO offset/length
combination presented to the ORE might get the length truncated and
the user must re-submit the leftover pages. (Both exofs and NFS
support this)

But any ORE user should make it's best effort to align it's IO
before hand and avoid complications. A cached ore_layout-&gt;stripe_size
member can be used for that calculation. (NOTE: that ORE demands
that stripe_size may not be bigger then 32bit)

What else? Well read it and tell me.

Signed-off-by: Boaz Harrosh &lt;bharrosh@panasas.com&gt;
</content>
</entry>
<entry>
<title>ore: RAID5 read</title>
<updated>2011-10-24T23:55:36Z</updated>
<author>
<name>Boaz Harrosh</name>
<email>bharrosh@panasas.com</email>
</author>
<published>2011-10-12T16:42:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a1fec1dbbc8db974d2582e4040590cebe72171e4'/>
<id>urn:sha1:a1fec1dbbc8db974d2582e4040590cebe72171e4</id>
<content type='text'>
This patch introduces the first stage of RAID5 support
mainly the skip-over-raid-units when reading. For
writes it inserts BLANK units, into where XOR blocks
should be calculated and written to.

It introduces the new "general raid maths", and the main
additional parameters and components needed for raid5.

Since at this stage it could corrupt future version that
actually do support raid5. The enablement of raid5
mounting and setting of parity-count &gt; 0 is disabled. So
the raid5 code will never be used. Mounting of raid5 is
only enabled later once the basic XOR write is also in.
But if the patch "enable RAID5" is applied this code has
been tested to be able to properly read raid5 volumes
and is according to standard.

Also it has been tested that the new maths still properly
supports RAID0 and grouping code just as before.
(BTW: I have found more bugs in the pnfs-obj RAID math
 fixed here)

The ore.c file is getting too big, so new ore_raid.[hc]
files are added that will include the special raid stuff
that are not used in striping and mirrors. In future write
support these will get bigger.
When adding the ore_raid.c to Kbuild file I was forced to
rename ore.ko to libore.ko. Is it possible to keep source
file, say ore.c and module file ore.ko the same even if there
are multiple files inside ore.ko?

Signed-off-by: Boaz Harrosh &lt;bharrosh@panasas.com&gt;
</content>
</entry>
<entry>
<title>ore: Make ore_calc_stripe_info EXPORT_SYMBOL</title>
<updated>2011-10-24T23:30:08Z</updated>
<author>
<name>Boaz Harrosh</name>
<email>bharrosh@panasas.com</email>
</author>
<published>2011-10-04T12:20:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=611d7a5dc6f2a1a0cfd8cc07b9d15f794cbe5f98'/>
<id>urn:sha1:611d7a5dc6f2a1a0cfd8cc07b9d15f794cbe5f98</id>
<content type='text'>
ore_calc_stripe_info is needed by exofs::export.c
for the layout calculations. Make it exportable

Signed-off-by: Boaz Harrosh &lt;bharrosh@panasas.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] iscsi class: fix vlan configuration</title>
<updated>2011-10-20T15:13:55Z</updated>
<author>
<name>Mike Christie</name>
<email>michaelc@cs.wisc.edu</email>
</author>
<published>2011-10-11T22:55:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2d63673b4d469cf2ddba309a916090b54e31cc35'/>
<id>urn:sha1:2d63673b4d469cf2ddba309a916090b54e31cc35</id>
<content type='text'>
Userspace was sending the priority/id part of the vlan tag
and sysfs was displaying the id in the vlan file. This
renames the vlan sysfs file to vlan_id to reflect that it
was showing the id and to match the vlan_priority file.
This also adds a ISCSI_NET_PARAM_VLAN_TAG iscsi nl command
to relfect that we are sending down the vlan/priority
part of the tag.

Signed-off-by: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] qla4xxx: fix data alignment and use nl helpers</title>
<updated>2011-10-20T15:12:44Z</updated>
<author>
<name>Mike Christie</name>
<email>michaelc@cs.wisc.edu</email>
</author>
<published>2011-10-06T08:56:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=00c31889f7513e9ffa6b2b4de8ad6d7f59a61c80'/>
<id>urn:sha1:00c31889f7513e9ffa6b2b4de8ad6d7f59a61c80</id>
<content type='text'>
This has the driver use helpers for a common operation and fixes
a issue where if multiple iscsi params are sent they could be
sent at offsets that cause unaligned accesses. The nla helpers
account for the padding needed to align properly for the driver.

Signed-off-by: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] iscsi class: Replace iscsi_get_next_target_id with IDA</title>
<updated>2011-10-20T15:10:07Z</updated>
<author>
<name>Mike Christie</name>
<email>michaelc@cs.wisc.edu</email>
</author>
<published>2011-10-06T08:56:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8d4a690cd4f574bcb70c2cb89c227ba89a51351f'/>
<id>urn:sha1:8d4a690cd4f574bcb70c2cb89c227ba89a51351f</id>
<content type='text'>
 Replaced the iscsi_get_next_target_id with IDA to make
 target-id allocation efficient for iscsi offload drivers

 This patch should be applied after Jonathen Cameron Patch
 "ida : simplified functions for id allocation"

Signed-off-by: John Soni Jose &lt;jose0here@gmail.com&gt;
Signed-off-by: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] libsas: fix port-&gt;dev_list locking</title>
<updated>2011-10-16T15:54:02Z</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2011-09-22T05:05:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1a34c0640137eed8dabdac3a68a7a84116ac9e0d'/>
<id>urn:sha1:1a34c0640137eed8dabdac3a68a7a84116ac9e0d</id>
<content type='text'>
port-&gt;dev_list maintains a list of devices attached to a given sas root port.
It needs to be mutated under a lock as contexts outside of the
single-threaded-libsas-workqueue access the list via sas_find_dev_by_rphy().
Fixup locations where the list was being mutated without a lock.

This is a follow-up to commit 5911e963 "[SCSI] libsas: remove expander
from dev list on error", where Luben noted [1]:

    &gt; 2/ We have unlocked list manipulations in sas_ex_discover_end_dev(),
    &gt; sas_unregister_common_dev(), and sas_ex_discover_end_dev()

    Yes, I can see that and that is very unfortunate.

[1]: http://marc.info/?l=linux-scsi&amp;m=131480962006471&amp;w=2

Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
</feed>
