mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-18 13:16:55 +07:00
dm: fix to_sector() for 32bit
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: 0cf4503174
("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>
This commit is contained in:
parent
d2832376b6
commit
0bdb50c531
@ -603,7 +603,7 @@ do { \
|
|||||||
*/
|
*/
|
||||||
#define dm_target_offset(ti, sector) ((sector) - (ti)->begin)
|
#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);
|
return (n >> SECTOR_SHIFT);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user