<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/md/dm-thin.c, branch linux-4.7.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.7.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.7.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-05-13T13:04:20Z</updated>
<entry>
<title>dm thin: unroll issue_discard() to create longer discard bio chains</title>
<updated>2016-05-13T13:04:20Z</updated>
<author>
<name>Joe Thornber</name>
</author>
<published>2016-05-04T18:12:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=202bae52934d4eb79ffaebf49f49b1cc64d8e40b'/>
<id>urn:sha1:202bae52934d4eb79ffaebf49f49b1cc64d8e40b</id>
<content type='text'>
There is little benefit to doing this but it does structure DM thinp's
code to more cleanly use the __blkdev_issue_discard() interface --
particularly in passdown_double_checking_shared_status().

Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm thin: use __blkdev_issue_discard for async discard support</title>
<updated>2016-05-13T13:03:52Z</updated>
<author>
<name>Mike Snitzer</name>
</author>
<published>2016-05-03T00:16:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3dba53a958a758fe7bed5002f6a2846e1acefe8e'/>
<id>urn:sha1:3dba53a958a758fe7bed5002f6a2846e1acefe8e</id>
<content type='text'>
With commit 38f25255330 ("block: add __blkdev_issue_discard") DM thinp
no longer needs to carry its own async discard method.

Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Acked-by: Joe Thornber &lt;ejt@redhat.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>dm thin: remove __bio_inc_remaining() and switch to using bio_inc_remaining()</title>
<updated>2016-05-13T13:03:52Z</updated>
<author>
<name>Mike Snitzer</name>
</author>
<published>2016-05-04T19:05:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=13e4f8a695aa1dc7c94525047fc2ffb9abc8125e'/>
<id>urn:sha1:13e4f8a695aa1dc7c94525047fc2ffb9abc8125e</id>
<content type='text'>
DM thinp's use of bio_inc_remaining() is critical to ensure the original
parent discard bio isn't completed before sub-discards have.  DM thinp
needs this due to the extra quiescing that occurs, via multiple DM thinp
mappings, while processing large discards.  As such DM thinp must build
the async discard bio chain after some delay -- so bio_inc_remaining()
is used to enable DM thinp to take a reference on the original parent
discard bio for each mapping.  This allows the immediate use of
bio_endio() on that discard bio; but with the understanding that the
actual completion won't occur until each of the sub-discards'
per-mapping references are dropped.

Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Acked-by: Joe Thornber &lt;ejt@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm thin: Remove return statement from void function</title>
<updated>2016-05-05T19:25:50Z</updated>
<author>
<name>Amitoj Kaur Chawla</name>
</author>
<published>2016-04-11T06:07:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=813923b1a21b73f3068d89b817a86bea5371108c'/>
<id>urn:sha1:813923b1a21b73f3068d89b817a86bea5371108c</id>
<content type='text'>
Return statement at the end of a void function is useless.

The Coccinelle semantic patch used to make this change is as follows:
//&lt;smpl&gt;
@@
identifier f;
expression e;
@@
void f(...) {
&lt;...
- return
  e;
...&gt;
}
//&lt;/smpl&gt;

Signed-off-by: Amitoj Kaur Chawla &lt;amitoj1606@gmail.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm thin: consistently return -ENOSPC if pool has run out of data space</title>
<updated>2016-03-11T21:15:22Z</updated>
<author>
<name>Mike Snitzer</name>
</author>
<published>2016-03-10T16:31:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c3667cc6190469d2c7196c2d4dc75fcb33a0814f'/>
<id>urn:sha1:c3667cc6190469d2c7196c2d4dc75fcb33a0814f</id>
<content type='text'>
Commit 0a927c2f02 ("dm thin: return -ENOSPC when erroring retry list due
to out of data space") was a step in the right direction but didn't go
far enough.

Add a new 'out_of_data_space' flag to 'struct pool' and set it if/when
the pool runs of of data space.  This fixes cell_error() and
error_retry_list() to not blindly return -EIO.

We cannot rely on the 'error_if_no_space' feature flag since it is
transient (in that it can be reset once space is added, plus it only
controls whether errors are issued, it doesn't reflect whether the
pool is actually out of space).

Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm: rename target's per_bio_data_size to per_io_data_size</title>
<updated>2016-02-23T03:34:37Z</updated>
<author>
<name>Mike Snitzer</name>
</author>
<published>2016-01-31T18:28:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=30187e1d48a258e304af184c45c3140c8509d219'/>
<id>urn:sha1:30187e1d48a258e304af184c45c3140c8509d219</id>
<content type='text'>
Request-based DM will also make use of per_bio_data_size.

Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm thin: bump thin and thin-pool target versions</title>
<updated>2016-01-07T01:59:40Z</updated>
<author>
<name>Mike Snitzer</name>
</author>
<published>2016-01-06T19:13:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1c2e54e1ed6f0a87ae628c520768a53dc60bc2f4'/>
<id>urn:sha1:1c2e54e1ed6f0a87ae628c520768a53dc60bc2f4</id>
<content type='text'>
Commit 3d5f6733 ("dm thin metadata: speed up discard of partially mapped
volumes"), or some other dm-thinp change during the Linux 4.5
development window, really should've bumped these target versions.

Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm thin: fix race condition when destroying thin pool workqueue</title>
<updated>2015-12-17T20:47:20Z</updated>
<author>
<name>Nikolay Borisov</name>
</author>
<published>2015-12-17T16:03:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=18d03e8c25f173f4107a40d0b8c24defb6ed69f3'/>
<id>urn:sha1:18d03e8c25f173f4107a40d0b8c24defb6ed69f3</id>
<content type='text'>
When a thin pool is being destroyed delayed work items are
cancelled using cancel_delayed_work(), which doesn't guarantee that on
return the delayed item isn't running.  This can cause the work item to
requeue itself on an already destroyed workqueue.  Fix this by using
cancel_delayed_work_sync() which guarantees that on return the work item
is not running anymore.

Fixes: 905e51b39a555 ("dm thin: commit outstanding data every second")
Fixes: 85ad643b7e7e5 ("dm thin: add timeout to stop out-of-data-space mode holding IO forever")
Signed-off-by: Nikolay Borisov &lt;kernel@kyup.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>dm thin: fix regression in advertised discard limits</title>
<updated>2015-11-23T19:54:46Z</updated>
<author>
<name>Mike Snitzer</name>
</author>
<published>2015-11-23T18:44:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0fcb04d59351f790efb8da18edefd6ab4d9bbf3b'/>
<id>urn:sha1:0fcb04d59351f790efb8da18edefd6ab4d9bbf3b</id>
<content type='text'>
When establishing a thin device's discard limits we cannot rely on the
underlying thin-pool device's discard capabilities (which are inherited
from the thin-pool's underlying data device) given that DM thin devices
must provide discard support even when the thin-pool's underlying data
device doesn't support discards.

Users were exposed to this thin device discard limits regression if
their thin-pool's underlying data device does _not_ support discards.
This regression caused all upper-layers that called the
blkdev_issue_discard() interface to not be able to issue discards to
thin devices (because discard_granularity was 0).  This regression
wasn't caught earlier because the device-mapper-test-suite's extensive
'thin-provisioning' discard tests are only ever performed against
thin-pool's with data devices that support discards.

Fix is to have thin_io_hints() test the pool's 'discard_enabled' feature
rather than inferring whether or not a thin device's discard support
should be enabled by looking at the thin-pool's discard_granularity.

Fixes: 216076705 ("dm thin: disable discard support for thin devices if pool's is disabled")
Reported-by: Mike Gerber &lt;mike@sprachgewalt.de&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Cc: stable@vger.kernel.org # 4.1+
</content>
</entry>
<entry>
<title>dm thin: restore requested 'error_if_no_space' setting on OODS to WRITE transition</title>
<updated>2015-11-16T14:36:08Z</updated>
<author>
<name>Mike Snitzer</name>
</author>
<published>2015-11-06T15:53:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=172c238612ebf81cabccc86b788c9209af591f61'/>
<id>urn:sha1:172c238612ebf81cabccc86b788c9209af591f61</id>
<content type='text'>
A thin-pool that is in out-of-data-space (OODS) mode may transition back
to write mode -- without the admin adding more space to the thin-pool --
if/when blocks are released (either by deleting thin devices or
discarding provisioned blocks).

But as part of the thin-pool's earlier transition to out-of-data-space
mode the thin-pool may have set the 'error_if_no_space' flag to true if
the no_space_timeout expires without more space having been made
available.  That implementation detail, of changing the pool's
error_if_no_space setting, needs to be reset back to the default that
the user specified when the thin-pool's table was loaded.

Otherwise we'll drop the user requested behaviour on the floor when this
out-of-data-space to write mode transition occurs.

Reported-by: Vivek Goyal &lt;vgoyal@redhat.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Acked-by: Joe Thornber &lt;ejt@redhat.com&gt;
Fixes: 2c43fd26e4 ("dm thin: fix missing out-of-data-space to write mode transition if blocks are released")
Cc: stable@vger.kernel.org
</content>
</entry>
</feed>
