Patch "dm cache: fix corruption seen when using cache > 2TB" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
dm cache: fix corruption seen when using cache > 2TB
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
dm-cache-fix-corruption-seen-when-using-cache-2tb.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
ca763d0a53b264a650342cee206512bc92ac7050Mon Sep 17 00:00:00 2001
From: Joe Thornber <[email protected]>
Date: Thu, 9 Feb 2017 11:46:18 -0500
Subject: dm cache: fix corruption seen when using cache > 2TB
From: Joe Thornber <[email protected]>
commit ca763d0a53b264a650342cee206512bc92ac7050 upstream.
A rounding bug due to compiler generated temporary being 32bit was found in remap_to_cache(). A localized cast in remap_to_cache() fixes the corruption but this preferred fix (changing from uint32_t to sector_t) eliminates potential for future rounding errors elsewhere.
--- drivers/md/dm-cache-target.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/md/dm-cache-target.c +3 -3
@@ -251,7 +251,7 @@ struct cache {/* * Fields for converting from sectors to blocks. */ -uint32_t sectors_per_block; +sector_t sectors_per_block;int sectors_per_block_shift;spinlock_t lock;
@@ -3547,11 +3547,11 @@ static void cache_status(struct dm_targe residency =policy_residency (cache->policy); - DMEMIT("%u %llu/%llu %u %llu/%llu %u %u %u %u %u %u %lu ", + DMEMIT("%u %llu/%llu %llu %llu/%llu %u %u %u %u %u %u %lu ", (unsigned)DM_CACHE_METADATA_BLOCK_SIZE, (unsigned long long)(nr_blocks_metadata - nr_free_blocks_metadata), (unsigned long long)nr_blocks_metadata, - cache->sectors_per_block, + (unsigned long long)cache->sectors_per_block, (unsigned long long) from_cblock(residency), (unsigned long long) from_cblock(cache->cache_size), (unsigned) atomic_read(&cache->stats.read_hit),
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/dm-cache-fix-corruption-seen-when-using-cache-2tb.patch