lkml.org 
[lkml]   [2019]   [Mar]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 214/230] dm: fix to_sector() for 32bit
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

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

    From: NeilBrown <neil@brown.name>

    commit 0bdb50c531f7377a9da80d3ce2d61f389c84cb30 upstream.

    A dm-raid array with devices larger than 4GB won't assemble on
    a 32 bit host since _check_data_dev_sectors() was added in 4.16.
    This is because to_sector() treats its argument as an "unsigned long"
    which is 32bits (4GB) on a 32bit host. Using "unsigned long long"
    is more correct.

    Kernels as early as 4.2 can have other problems due to to_sector()
    being used on the size of a device.

    Fixes: 0cf4503174c1 ("dm raid: add support for the MD RAID0 personality")
    cc: stable@vger.kernel.org (v4.2+)
    Reported-and-tested-by: Guillaume Perréal <gperreal@free.fr>
    Signed-off-by: NeilBrown <neil@brown.name>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    include/linux/device-mapper.h | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/include/linux/device-mapper.h
    +++ b/include/linux/device-mapper.h
    @@ -593,7 +593,7 @@ extern struct ratelimit_state dm_ratelim
    */
    #define dm_target_offset(ti, sector) ((sector) - (ti)->begin)

    -static inline sector_t to_sector(unsigned long n)
    +static inline sector_t to_sector(unsigned long long n)
    {
    return (n >> SECTOR_SHIFT);
    }

    \
     
     \ /
      Last update: 2019-03-22 14:06    [W:4.039 / U:0.124 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site