mirror of https://gitee.com/openkylin/linux.git
dm thin: disable discard support for thin devices if pool's is disabled
If the pool is configured with 'ignore_discard' its discard support is
disabled. The pool's thin devices should also have queue_limits that
reflect discards are disabled.
Fixes: 34fbcf62
("dm thin: range discard support")
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Cc: stable@vger.kernel.org # 4.1+
This commit is contained in:
parent
6ff33f3902
commit
216076705d
|
@ -4249,6 +4249,10 @@ static void thin_io_hints(struct dm_target *ti, struct queue_limits *limits)
|
||||||
{
|
{
|
||||||
struct thin_c *tc = ti->private;
|
struct thin_c *tc = ti->private;
|
||||||
struct pool *pool = tc->pool;
|
struct pool *pool = tc->pool;
|
||||||
|
struct queue_limits *pool_limits = dm_get_queue_limits(pool->pool_md);
|
||||||
|
|
||||||
|
if (!pool_limits->discard_granularity)
|
||||||
|
return; /* pool's discard support is disabled */
|
||||||
|
|
||||||
limits->discard_granularity = pool->sectors_per_block << SECTOR_SHIFT;
|
limits->discard_granularity = pool->sectors_per_block << SECTOR_SHIFT;
|
||||||
limits->max_discard_sectors = 2048 * 1024 * 16; /* 16G */
|
limits->max_discard_sectors = 2048 * 1024 * 16; /* 16G */
|
||||||
|
|
Loading…
Reference in New Issue