diff options
author | Florian-Ewald Mueller <florian-ewald.mueller@ionos.com> | 2022-10-25 09:37:05 +0200 |
---|---|---|
committer | Song Liu <song@kernel.org> | 2022-11-14 18:35:50 +0100 |
commit | 4555211190798b6b6fa2c37667d175bf67945c78 (patch) | |
tree | d4e1b118a6db6715648a9d95ad459d1e9e7952bc /drivers/md/raid0.c | |
parent | md: introduce md_ro_state (diff) | |
download | linux-4555211190798b6b6fa2c37667d175bf67945c78.tar.xz linux-4555211190798b6b6fa2c37667d175bf67945c78.zip |
md/bitmap: Fix bitmap chunk size overflow issues
- limit bitmap chunk size internal u64 variable to values not overflowing
the u32 bitmap superblock structure variable stored on persistent media
- assign bitmap chunk size internal u64 variable from unsigned values to
avoid possible sign extension artifacts when assigning from a s32 value
The bug has been there since at least kernel 4.0.
Steps to reproduce it:
1: mdadm -C /dev/mdx -l 1 --bitmap=internal --bitmap-chunk=256M -e 1.2
-n2 /dev/rnbd1 /dev/rnbd2
2 resize member device rnbd1 and rnbd2 to 8 TB
3 mdadm --grow /dev/mdx --size=max
The bitmap_chunksize will overflow without patch.
Cc: stable@vger.kernel.org
Signed-off-by: Florian-Ewald Mueller <florian-ewald.mueller@ionos.com>
Signed-off-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Song Liu <song@kernel.org>
Diffstat (limited to 'drivers/md/raid0.c')
0 files changed, 0 insertions, 0 deletions