From: Joe Thornber Date: Thu, 27 Nov 2014 12:21:08 +0000 (+0000) Subject: dm cache: only use overwrite optimisation for promotion when in writeback mode X-Git-Tag: v3.19-rc1~177^2~6 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=f29a3147e251d7ae20d3194ff67f109d71e501b4;p=~emulex%2Finfiniband.git dm cache: only use overwrite optimisation for promotion when in writeback mode Overwrite causes the cache block and origin blocks to diverge, which is only allowed in writeback mode. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org --- diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c index fd7f6138728..ef842feda10 100644 --- a/drivers/md/dm-cache-target.c +++ b/drivers/md/dm-cache-target.c @@ -1142,7 +1142,8 @@ static void issue_copy_or_discard(struct dm_cache_migration *mg) avoid = is_discarded_oblock(cache, mg->new_oblock); - if (!avoid && bio_writes_complete_block(cache, bio)) { + if (writeback_mode(&cache->features) && + !avoid && bio_writes_complete_block(cache, bio)) { issue_overwrite(mg, bio); return; }