mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-17 06:17:35 +00:00
md: support bitmaps on RAID10 arrays larger then 2 terabytes
.. and other arrays with components larger than 2 terabytes. We use a "long" rather than a "sector_t" in part of the bitmap size calculations, which is sad. Reported-by: "Mario 'BitKoenig' Holbe" <Mario.Holbe@TU-Ilmenau.DE> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
c03f6a1969
commit
1f59390339
@ -1590,7 +1590,7 @@ void bitmap_destroy(mddev_t *mddev)
|
||||
int bitmap_create(mddev_t *mddev)
|
||||
{
|
||||
struct bitmap *bitmap;
|
||||
unsigned long blocks = mddev->resync_max_sectors;
|
||||
sector_t blocks = mddev->resync_max_sectors;
|
||||
unsigned long chunks;
|
||||
unsigned long pages;
|
||||
struct file *file = mddev->bitmap_file;
|
||||
@ -1632,8 +1632,8 @@ int bitmap_create(mddev_t *mddev)
|
||||
bitmap->chunkshift = ffz(~bitmap->chunksize);
|
||||
|
||||
/* now that chunksize and chunkshift are set, we can use these macros */
|
||||
chunks = (blocks + CHUNK_BLOCK_RATIO(bitmap) - 1) /
|
||||
CHUNK_BLOCK_RATIO(bitmap);
|
||||
chunks = (blocks + CHUNK_BLOCK_RATIO(bitmap) - 1) >>
|
||||
CHUNK_BLOCK_SHIFT(bitmap);
|
||||
pages = (chunks + PAGE_COUNTER_RATIO - 1) / PAGE_COUNTER_RATIO;
|
||||
|
||||
BUG_ON(!pages);
|
||||
|
Loading…
Reference in New Issue
Block a user