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.14.28~37 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=624f917e5a7123e794486df12ed779f50b0e2706;p=platform%2Fkernel%2Flinux-stable.git dm cache: only use overwrite optimisation for promotion when in writeback mode commit f29a3147e251d7ae20d3194ff67f109d71e501b4 upstream. 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 Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c index 2331543005b2..3e573a7bbf10 100644 --- a/drivers/md/dm-cache-target.c +++ b/drivers/md/dm-cache-target.c @@ -1060,7 +1060,8 @@ static void issue_copy(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; }