Skip to content

Commit 76cd267

Browse files
committed
md/raid1: check before referencing mddev->bitmap_ops
JIRA: https://issues.redhat.com/browse/RHEL-123668 commit 8d31ed3 Author: Yu Kuai <yukuai3@huawei.com> Date: Mon Jul 7 09:27:06 2025 +0800 md/raid1: check before referencing mddev->bitmap_ops Prepare to introduce CONFIG_MD_BITMAP. Link: https://lore.kernel.org/linux-raid/20250707012711.376844-11-yukuai1@huaweicloud.com Signed-off-by: Yu Kuai <yukuai3@huawei.com> Reviewed-by: Xiao Ni <xni@redhat.com> Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
1 parent 05abb58 commit 76cd267

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

drivers/md/raid1.c

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2820,7 +2820,8 @@ static sector_t raid1_sync_request(struct mddev *mddev, sector_t sector_nr,
28202820
else /* completed sync */
28212821
conf->fullsync = 0;
28222822

2823-
mddev->bitmap_ops->close_sync(mddev);
2823+
if (md_bitmap_enabled(mddev, false))
2824+
mddev->bitmap_ops->close_sync(mddev);
28242825
close_sync(conf);
28252826

28262827
if (mddev_is_clustered(mddev)) {
@@ -2857,10 +2858,11 @@ static sector_t raid1_sync_request(struct mddev *mddev, sector_t sector_nr,
28572858
/* we are incrementing sector_nr below. To be safe, we check against
28582859
* sector_nr + two times RESYNC_SECTORS
28592860
*/
2860-
2861-
mddev->bitmap_ops->cond_end_sync(mddev, sector_nr,
2862-
mddev_is_clustered(mddev) &&
2863-
(sector_nr + 2 * RESYNC_SECTORS > conf->cluster_sync_high));
2861+
if (md_bitmap_enabled(mddev, false))
2862+
mddev->bitmap_ops->cond_end_sync(mddev, sector_nr,
2863+
mddev_is_clustered(mddev) &&
2864+
(sector_nr + 2 * RESYNC_SECTORS >
2865+
conf->cluster_sync_high));
28642866

28652867
if (raise_barrier(conf, sector_nr))
28662868
return 0;
@@ -3335,15 +3337,17 @@ static int raid1_resize(struct mddev *mddev, sector_t sectors)
33353337
* worth it.
33363338
*/
33373339
sector_t newsize = raid1_size(mddev, sectors, 0);
3338-
int ret;
33393340

33403341
if (mddev->external_size &&
33413342
mddev->array_sectors > newsize)
33423343
return -EINVAL;
33433344

3344-
ret = mddev->bitmap_ops->resize(mddev, newsize, 0);
3345-
if (ret)
3346-
return ret;
3345+
if (md_bitmap_enabled(mddev, false)) {
3346+
int ret = mddev->bitmap_ops->resize(mddev, newsize, 0);
3347+
3348+
if (ret)
3349+
return ret;
3350+
}
33473351

33483352
md_set_array_sectors(mddev, newsize);
33493353
if (sectors > mddev->dev_sectors &&

0 commit comments

Comments
 (0)