<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/stable/linux-stable.git/block/bio-integrity.c, branch linux-3.16.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<id>https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/atom?h=linux-3.16.y</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/atom?h=linux-3.16.y'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/'/>
<updated>2018-12-16T22:08:26+00:00</updated>
<entry>
<title>block: move bio_integrity_{intervals,bytes} into blkdev.h</title>
<updated>2018-12-16T22:08:26+00:00</updated>
<author>
<name>Greg Edwards</name>
<email>gedwards@ddn.com</email>
</author>
<published>2018-07-25T14:22:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ed1a4f65447b5475afaf2f13a74cddf332e3e5ad'/>
<id>urn:sha1:ed1a4f65447b5475afaf2f13a74cddf332e3e5ad</id>
<content type='text'>
commit 359f642700f2ff05d9c94cd9216c97af7b8e9553 upstream.

This allows bio_integrity_bytes() to be called from drivers instead of
open coding it.

Acked-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Greg Edwards &lt;gedwards@ddn.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
[bwh: Backported to 3.16: bio_integrity_intervals() was called
 bio_integrity_hw_sectors() and had a different implementation.  Move it
 without renaming.]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>bio integrity: do not assume bio_integrity_pool exists if bioset exists</title>
<updated>2015-08-10T08:54:14+00:00</updated>
<author>
<name>Mike Snitzer</name>
<email>snitzer@redhat.com</email>
</author>
<published>2015-07-01T16:57:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=050b6b274741362c21d57f44f0873adc6abcc70e'/>
<id>urn:sha1:050b6b274741362c21d57f44f0873adc6abcc70e</id>
<content type='text'>
commit bb8bd38b9a1685334b73e8c62e128cbedb875867 upstream.

bio_integrity_alloc() and bio_integrity_free() assume that if a bio was
allocated from a bioset that that bioset also had its bio_integrity_pool
allocated using bioset_integrity_create().  This is a very bad
assumption given that bioset_create() and bioset_integrity_create() are
completely disjoint.  Not all callers of bioset_create() have been
trained to also call bioset_integrity_create() -- and they may not care
to be.

Fix this by falling back to kmalloc'ing 'struct bio_integrity_payload'
rather than force all bioset consumers to (wastefully) preallocate a
bio_integrity_pool that they very likely won't actually need (given the
niche nature of the current block integrity support).

Otherwise, a NULL pointer "Kernel BUG" with a trace like the following
will be observed (as seen on s390x using zfcp storage) because dm-io
doesn't use bioset_integrity_create() when creating its bioset:

    [  791.643338] Call Trace:
    [  791.643339] ([&lt;00000003df98b848&gt;] 0x3df98b848)
    [  791.643341]  [&lt;00000000002c5de8&gt;] bio_integrity_alloc+0x48/0xf8
    [  791.643348]  [&lt;00000000002c6486&gt;] bio_integrity_prep+0xae/0x2f0
    [  791.643349]  [&lt;0000000000371e38&gt;] blk_queue_bio+0x1c8/0x3d8
    [  791.643355]  [&lt;000000000036f8d0&gt;] generic_make_request+0xc0/0x100
    [  791.643357]  [&lt;000000000036f9b2&gt;] submit_bio+0xa2/0x198
    [  791.643406]  [&lt;000003ff801f9774&gt;] dispatch_io+0x15c/0x3b0 [dm_mod]
    [  791.643419]  [&lt;000003ff801f9b3e&gt;] dm_io+0x176/0x2f0 [dm_mod]
    [  791.643423]  [&lt;000003ff8074b28a&gt;] do_reads+0x13a/0x1a8 [dm_mirror]
    [  791.643425]  [&lt;000003ff8074b43a&gt;] do_mirror+0x142/0x298 [dm_mirror]
    [  791.643428]  [&lt;0000000000154fca&gt;] process_one_work+0x18a/0x3f8
    [  791.643432]  [&lt;000000000015598a&gt;] worker_thread+0x132/0x3b0
    [  791.643435]  [&lt;000000000015d49a&gt;] kthread+0xd2/0xd8
    [  791.643438]  [&lt;00000000005bc0ca&gt;] kernel_thread_starter+0x6/0xc
    [  791.643446]  [&lt;00000000005bc0c4&gt;] kernel_thread_starter+0x0/0xc

Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
[ luis: backported to 3.16: adjusted context ]
Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
</content>
</entry>
<entry>
<title>block: move bio.c and bio-integrity.c from fs/ to block/</title>
<updated>2014-05-19T14:34:46+00:00</updated>
<author>
<name>Jens Axboe</name>
<email>axboe@fb.com</email>
</author>
<published>2014-05-19T14:16:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=f9c78b2be2cac2a7a397d489275e7d9f9ae785f2'/>
<id>urn:sha1:f9c78b2be2cac2a7a397d489275e7d9f9ae785f2</id>
<content type='text'>
They really belong in block/, especially now since it's not in
drivers/block/ anymore. Additionally, the get_maintainer script
gets it wrong when in fs/.

Suggested-by: Christoph Hellwig &lt;hch@infradead.org&gt;
Acked-by: Al Viro &lt;viro@ZenIV.linux.org.uk&gt;
Signed-off-by: Jens Axboe &lt;axboe@fb.com&gt;
</content>
</entry>
</feed>
