lkml.org 
[lkml]   [2017]   [Mar]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 054/153] dm cache: fix corruption seen when using cache > 2TB
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Joe Thornber <ejt@redhat.com>

    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.

    Signed-off-by: Joe Thornber <ejt@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/md/dm-cache-target.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    --- a/drivers/md/dm-cache-target.c
    +++ b/drivers/md/dm-cache-target.c
    @@ -248,7 +248,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;
    @@ -3546,11 +3546,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),

    \
     
     \ /
      Last update: 2017-03-10 12:23    [W:4.278 / U:0.180 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site