From 5fe38a5246e96640345f39f2a40fcbed0f9c717c Mon Sep 17 00:00:00 2001 From: Mikulas Patocka Date: Fri, 20 Jul 2012 14:25:05 +0100 Subject: [PATCH] --- yaml --- r: 312107 b: refs/heads/master c: 650d2a06b4fe1cc1d218c20e256650f68bf0ca31 h: refs/heads/master i: 312105: 0969ca61ee3fda55ffb85659418fb63ce29d1ce8 312103: de249c94e3a23c401a82d2d595162b3276aa0741 v: v3 --- [refs] | 2 +- trunk/drivers/md/dm-thin.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 4ad6830c8a8f..ee066cedcb30 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 751f188dd5ab95b3f2b5f2f467c38aae5a2877eb +refs/heads/master: 650d2a06b4fe1cc1d218c20e256650f68bf0ca31 diff --git a/trunk/drivers/md/dm-thin.c b/trunk/drivers/md/dm-thin.c index ce59824fb414..68694da0d21d 100644 --- a/trunk/drivers/md/dm-thin.c +++ b/trunk/drivers/md/dm-thin.c @@ -1245,7 +1245,10 @@ static void process_discard(struct thin_c *tc, struct bio *bio) cell_release_singleton(cell, bio); cell_release_singleton(cell2, bio); - remap_and_issue(tc, bio, lookup_result.block); + if ((!lookup_result.shared) && pool->pf.discard_passdown) + remap_and_issue(tc, bio, lookup_result.block); + else + bio_endio(bio, 0); } break; @@ -2628,6 +2631,7 @@ static int thin_ctr(struct dm_target *ti, unsigned argc, char **argv) if (tc->pool->pf.discard_enabled) { ti->discards_supported = 1; ti->num_discard_requests = 1; + ti->discard_zeroes_data_unsupported = 1; } dm_put(pool_md);