<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/md/dm-thin.c, branch linux-3.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-01-08T18:27:46Z</updated>
<entry>
<title>dm thin: fix a race in thin_dtr</title>
<updated>2015-01-08T18:27:46Z</updated>
<author>
<name>Mikulas Patocka</name>
</author>
<published>2014-11-05T22:00:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1a6f39233d864d62c6f26cda68df404d814baf4c'/>
<id>urn:sha1:1a6f39233d864d62c6f26cda68df404d814baf4c</id>
<content type='text'>
commit 17181fb7a0c3a279196c0eeb2caba65a1519614b upstream.

As long as struct thin_c is in the list, anyone can grab a reference of
it.  Consequently, we must wait for the reference count to drop to zero
*after* we remove the structure from the list, not before.

Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>dm thin: fix missing out-of-data-space to write mode transition if blocks are released</title>
<updated>2015-01-08T18:27:46Z</updated>
<author>
<name>Joe Thornber</name>
</author>
<published>2014-12-11T11:12:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=63027d8810ee41ebb92d183c2e95ee620f8503cb'/>
<id>urn:sha1:63027d8810ee41ebb92d183c2e95ee620f8503cb</id>
<content type='text'>
commit 2c43fd26e46734430122b8d2ad3024bb532df3ef upstream.

Discard bios and thin device deletion have the potential to release data
blocks.  If the thin-pool is in out-of-data-space mode, and blocks were
released, transition the thin-pool back to full write mode.

The correct time to do this is just after the thin-pool metadata commit.
It cannot be done before the commit because the space maps will not
allow immediate reuse of the data blocks in case there's a rollback
following power failure.

Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>dm thin: fix inability to discard blocks when in out-of-data-space mode</title>
<updated>2015-01-08T18:27:46Z</updated>
<author>
<name>Joe Thornber</name>
</author>
<published>2014-12-10T17:06:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c668ccfbf30acf376ff38b502240643d3d61cfd5'/>
<id>urn:sha1:c668ccfbf30acf376ff38b502240643d3d61cfd5</id>
<content type='text'>
commit 45ec9bd0fd7abf8705e7cf12205ff69fe9d51181 upstream.

When the pool was in PM_OUT_OF_SPACE mode its process_prepared_discard
function pointer was incorrectly being set to
process_prepared_discard_passdown rather than process_prepared_discard.

This incorrect function pointer meant the discard was being passed down,
but not effecting the mapping.  As such any discard that was issued, in
an attempt to reclaim blocks, would not successfully free data space.

Reported-by: Eric Sandeen &lt;sandeen@redhat.com&gt;
Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>dm thin: grab a virtual cell before looking up the mapping</title>
<updated>2014-11-21T17:23:12Z</updated>
<author>
<name>Joe Thornber</name>
</author>
<published>2014-10-10T08:41:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c61c587bde0fae770cd00f6f3aa74d8a50cfc8ad'/>
<id>urn:sha1:c61c587bde0fae770cd00f6f3aa74d8a50cfc8ad</id>
<content type='text'>
commit c822ed967cba38505713d59ed40a114386ef6c01 upstream.

Avoids normal IO racing with discard.

Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>dm thin: set minimum_io_size to pool's data block size</title>
<updated>2014-08-01T16:30:35Z</updated>
<author>
<name>Mike Snitzer</name>
</author>
<published>2014-07-18T21:59:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fdfb4c8c1a9fc8dd8cf8eeb4e3ed83573b375285'/>
<id>urn:sha1:fdfb4c8c1a9fc8dd8cf8eeb4e3ed83573b375285</id>
<content type='text'>
Before, if the block layer's limit stacking didn't establish an
optimal_io_size that was compatible with the thin-pool's data block size
we'd set optimal_io_size to the data block size and minimum_io_size to 0
(which the block layer adjusts to be physical_block_size).

Update pool_io_hints() to set both minimum_io_size and optimal_io_size
to the thin-pool's data block size.  This fixes an issue reported where
mkfs.xfs would create more XFS Allocation Groups on thinp volumes than
on a normal linear LV of comparable size, see:
https://bugzilla.redhat.com/show_bug.cgi?id=1003227

Reported-by: Chris Murphy &lt;lists@colorremedies.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
</content>
</entry>
<entry>
<title>dm thin: relax external origin size constraints</title>
<updated>2014-08-01T16:30:32Z</updated>
<author>
<name>Joe Thornber</name>
</author>
<published>2014-06-13T13:47:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e5aea7b49f2b1fd01f35ca7abeb76f5c56128a55'/>
<id>urn:sha1:e5aea7b49f2b1fd01f35ca7abeb76f5c56128a55</id>
<content type='text'>
Track the size of any external origin.  Previously the external origin's
size had to be a multiple of the thin-pool's block size, that is no
longer a requirement.  In addition, snapshots that are larger than the
external origin are now supported.

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: switch to an atomic_t for tracking pending new block preparations</title>
<updated>2014-08-01T16:30:31Z</updated>
<author>
<name>Joe Thornber</name>
</author>
<published>2014-06-13T12:57:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=50f3c3efdd5773d90396be07a7ecaa58227ff906'/>
<id>urn:sha1:50f3c3efdd5773d90396be07a7ecaa58227ff906</id>
<content type='text'>
Previously we used separate boolean values to track quiescing and
copying actions.  By switching to an atomic_t we can support blocks that
need a partial copy and partial zero.

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: update discard_granularity to reflect the thin-pool blocksize</title>
<updated>2014-06-11T20:56:12Z</updated>
<author>
<name>Lukas Czerner</name>
</author>
<published>2014-06-11T16:28:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=09869de57ed2728ae3c619803932a86cb0e2c4f8'/>
<id>urn:sha1:09869de57ed2728ae3c619803932a86cb0e2c4f8</id>
<content type='text'>
DM thinp already checks whether the discard_granularity of the data
device is a factor of the thin-pool block size.  But when using the
dm-thin-pool's discard passdown support, DM thinp was not selecting the
max of the underlying data device's discard_granularity and the
thin-pool's block size.

Update set_discard_limits() to set discard_granularity to the max of
these values.  This enables blkdev_issue_discard() to properly align the
discards that are sent to the DM thin device on a full block boundary.
As such each discard will now cover an entire DM thin-pool block and the
block will be reclaimed.

Reported-by: Zdenek Kabelac &lt;zkabelac@redhat.com&gt;
Signed-off-by: Lukas Czerner &lt;lczerner@redhat.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>dm thin: return ENOSPC instead of EIO when error_if_no_space enabled</title>
<updated>2014-06-03T17:44:08Z</updated>
<author>
<name>Mike Snitzer</name>
</author>
<published>2014-05-22T18:32:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=af91805a497d3aa694704172b41ba953be3738ed'/>
<id>urn:sha1:af91805a497d3aa694704172b41ba953be3738ed</id>
<content type='text'>
Update the DM thin provisioning target's allocation failure error to be
consistent with commit a9d6ceb8 ("[SCSI] return ENOSPC on thin
provisioning failure").

The DM thin target now returns -ENOSPC rather than -EIO when
block allocation fails due to the pool being out of data space (and
the 'error_if_no_space' thin-pool feature is enabled).

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: cleanup noflush_work to use a proper completion</title>
<updated>2014-06-03T17:44:07Z</updated>
<author>
<name>Joe Thornber</name>
</author>
<published>2014-05-13T20:14:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e7a3e871d8954c636b6cd2db7c7ece7ffe405986'/>
<id>urn:sha1:e7a3e871d8954c636b6cd2db7c7ece7ffe405986</id>
<content type='text'>
Factor out a pool_work interface that noflush_work makes use of to wait
for and complete work items (in terms of a proper completion struct).
Allows discontinuing the use of a custom completion in terms of atomic_t
and wait_event.

Signed-off-by: Joe Thornber &lt;ejt@redhat.com&gt;
Signed-off-by: Mike Snitzer &lt;snitzer@redhat.com&gt;
</content>
</entry>
</feed>
