diff options
author | Yu Kuai <yukuai3@huawei.com> | 2025-07-07 09:27:09 +0800 |
---|---|---|
committer | Yu Kuai <yukuai3@huawei.com> | 2025-09-06 17:12:15 +0800 |
commit | 0e18745420e332870eabed5a9d7efb45c0283bf0 (patch) | |
tree | 3b62ff5faed3bd51be76a5cc21fecd7b8d6b390a /drivers/md/dm-raid.c | |
parent | bb9317b13ade9e5e550aa2efecbd209ff96697ff (diff) |
md/dm-raid: check before referencing mddev->bitmap_ops
Prepare to introduce CONFIG_MD_BITMAP.
Link: https://lore.kernel.org/linux-raid/20250707012711.376844-14-yukuai1@huaweicloud.com
Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Xiao Ni <xni@redhat.com>
Diffstat (limited to 'drivers/md/dm-raid.c')
-rw-r--r-- | drivers/md/dm-raid.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c index 05811316dedd..967d72929909 100644 --- a/drivers/md/dm-raid.c +++ b/drivers/md/dm-raid.c @@ -3953,9 +3953,11 @@ static int __load_dirty_region_bitmap(struct raid_set *rs) !test_and_set_bit(RT_FLAG_RS_BITMAP_LOADED, &rs->runtime_flags)) { struct mddev *mddev = &rs->md; - r = mddev->bitmap_ops->load(mddev); - if (r) - DMERR("Failed to load bitmap"); + if (md_bitmap_enabled(mddev, false)) { + r = mddev->bitmap_ops->load(mddev); + if (r) + DMERR("Failed to load bitmap"); + } } return r; @@ -4070,10 +4072,12 @@ static int raid_preresume(struct dm_target *ti) mddev->bitmap_info.chunksize != to_bytes(rs->requested_bitmap_chunk_sectors)))) { int chunksize = to_bytes(rs->requested_bitmap_chunk_sectors) ?: mddev->bitmap_info.chunksize; - r = mddev->bitmap_ops->resize(mddev, mddev->dev_sectors, - chunksize); - if (r) - DMERR("Failed to resize bitmap"); + if (md_bitmap_enabled(mddev, false)) { + r = mddev->bitmap_ops->resize(mddev, mddev->dev_sectors, + chunksize); + if (r) + DMERR("Failed to resize bitmap"); + } } /* Check for any resize/reshape on @rs and adjust/initiate */ |