Mike Snitzer 0fcb04d593 dm thin: fix regression in advertised discard limits
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 <mike@sprachgewalt.de>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Cc: stable@vger.kernel.org # 4.1+
2015-11-23 14:54:46 -05:00
..
2015-10-31 19:06:01 -04:00
2014-01-14 23:23:03 -05:00
2015-10-31 19:06:01 -04:00
2015-10-31 19:06:01 -04:00
2015-10-31 19:05:59 -04:00
2015-10-31 19:05:59 -04:00
2012-07-30 17:25:16 -07:00
2015-10-31 19:06:01 -04:00
2015-10-31 19:05:59 -04:00
2015-08-13 12:31:57 -06:00
2015-10-24 17:16:19 +11:00
2015-08-13 12:31:57 -06:00
2015-11-04 21:12:47 -08:00
2015-11-04 21:12:47 -08:00
2015-11-01 13:48:29 +11:00
2015-11-04 21:12:47 -08:00