From: Mike Snitzer Date: Thu, 20 Mar 2014 14:11:15 +0000 (-0400) Subject: dm cache: prevent corruption caused by discard_block_size > cache_block_size X-Git-Tag: v3.15-rc1~69^2~21 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d132cc6d9e92424bb9d4fd35f5bd0e55d583f4be;p=pandora-kernel.git dm cache: prevent corruption caused by discard_block_size > cache_block_size If the discard block size is larger than the cache block size we will not properly quiesce IO to a region that is about to be discarded. This results in a race between a cache migration where no copy is needed, and a write to an adjacent cache block that's within the same large discard block. Workaround this by limiting the discard_block_size to cache_block_size. Also limit the max_discard_sectors to cache_block_size. A more comprehensive fix that introduces range locking support in the bio_prison and proper quiescing of a discard range that spans multiple cache blocks is already in development. Reported-by: Morgan Mears Signed-off-by: Mike Snitzer Acked-by: Joe Thornber Acked-by: Heinz Mauelshagen Cc: stable@vger.kernel.org --- Reading git-diff-tree failed