Skip to content

Commit 77c0964

Browse files
YuKuai-huaweiliu-song-6
authored andcommitted
md/md-bitmap: merge md_bitmap_resize() into bitmap_operations
So that the implementation won't be exposed, and it'll be possible to invent a new bitmap by replacing bitmap_operations. Signed-off-by: Yu Kuai <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Song Liu <[email protected]>
1 parent e1791da commit 77c0964

File tree

7 files changed

+18
-15
lines changed

7 files changed

+18
-15
lines changed

drivers/md/dm-raid.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4068,7 +4068,8 @@ static int raid_preresume(struct dm_target *ti)
40684068
mddev->bitmap_info.chunksize != to_bytes(rs->requested_bitmap_chunk_sectors)))) {
40694069
int chunksize = to_bytes(rs->requested_bitmap_chunk_sectors) ?: mddev->bitmap_info.chunksize;
40704070

4071-
r = md_bitmap_resize(mddev, mddev->dev_sectors, chunksize, false);
4071+
r = mddev->bitmap_ops->resize(mddev, mddev->dev_sectors,
4072+
chunksize, false);
40724073
if (r)
40734074
DMERR("Failed to resize bitmap");
40744075
}

drivers/md/md-bitmap.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2374,8 +2374,8 @@ static int __bitmap_resize(struct bitmap *bitmap, sector_t blocks,
23742374
return ret;
23752375
}
23762376

2377-
int md_bitmap_resize(struct mddev *mddev, sector_t blocks, int chunksize,
2378-
bool init)
2377+
static int bitmap_resize(struct mddev *mddev, sector_t blocks, int chunksize,
2378+
bool init)
23792379
{
23802380
struct bitmap *bitmap = mddev->bitmap;
23812381

@@ -2384,7 +2384,6 @@ int md_bitmap_resize(struct mddev *mddev, sector_t blocks, int chunksize,
23842384

23852385
return __bitmap_resize(bitmap, blocks, chunksize, init);
23862386
}
2387-
EXPORT_SYMBOL_GPL(md_bitmap_resize);
23882387

23892388
static ssize_t
23902389
location_show(struct mddev *mddev, char *page)
@@ -2763,6 +2762,7 @@ const struct attribute_group md_bitmap_group = {
27632762

27642763
static struct bitmap_operations bitmap_ops = {
27652764
.create = bitmap_create,
2765+
.resize = bitmap_resize,
27662766
.load = bitmap_load,
27672767
.destroy = bitmap_destroy,
27682768
.flush = bitmap_flush,

drivers/md/md-bitmap.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,9 @@ struct md_bitmap_stats {
248248

249249
struct bitmap_operations {
250250
int (*create)(struct mddev *mddev, int slot);
251+
int (*resize)(struct mddev *mddev, sector_t blocks, int chunksize,
252+
bool init);
253+
251254
int (*load)(struct mddev *mddev);
252255
void (*destroy)(struct mddev *mddev);
253256
void (*flush)(struct mddev *mddev);
@@ -280,8 +283,6 @@ void mddev_set_bitmap_ops(struct mddev *mddev);
280283

281284
/* these are exported */
282285

283-
int md_bitmap_resize(struct mddev *mddev, sector_t blocks, int chunksize,
284-
bool init);
285286
struct bitmap *get_bitmap_from_slot(struct mddev *mddev, int slot);
286287
int md_bitmap_copy_from_slot(struct mddev *mddev, int slot,
287288
sector_t *lo, sector_t *hi, bool clear_bits);

drivers/md/md-cluster.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -628,8 +628,9 @@ static int process_recvd_msg(struct mddev *mddev, struct cluster_msg *msg)
628628
break;
629629
case BITMAP_RESIZE:
630630
if (le64_to_cpu(msg->high) != mddev->pers->size(mddev, 0, 0))
631-
ret = md_bitmap_resize(mddev, le64_to_cpu(msg->high), 0,
632-
false);
631+
ret = mddev->bitmap_ops->resize(mddev,
632+
le64_to_cpu(msg->high),
633+
0, false);
633634
break;
634635
default:
635636
ret = -1;

drivers/md/raid1.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3303,7 +3303,7 @@ static int raid1_resize(struct mddev *mddev, sector_t sectors)
33033303
mddev->array_sectors > newsize)
33043304
return -EINVAL;
33053305

3306-
ret = md_bitmap_resize(mddev, newsize, 0, false);
3306+
ret = mddev->bitmap_ops->resize(mddev, newsize, 0, false);
33073307
if (ret)
33083308
return ret;
33093309

drivers/md/raid10.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4210,7 +4210,7 @@ static int raid10_resize(struct mddev *mddev, sector_t sectors)
42104210
mddev->array_sectors > size)
42114211
return -EINVAL;
42124212

4213-
ret = md_bitmap_resize(mddev, size, 0, false);
4213+
ret = mddev->bitmap_ops->resize(mddev, size, 0, false);
42144214
if (ret)
42154215
return ret;
42164216

@@ -4479,7 +4479,7 @@ static int raid10_start_reshape(struct mddev *mddev)
44794479
newsize = raid10_size(mddev, 0, conf->geo.raid_disks);
44804480

44814481
if (!mddev_is_clustered(mddev)) {
4482-
ret = md_bitmap_resize(mddev, newsize, 0, false);
4482+
ret = mddev->bitmap_ops->resize(mddev, newsize, 0, false);
44834483
if (ret)
44844484
goto abort;
44854485
else
@@ -4494,20 +4494,20 @@ static int raid10_start_reshape(struct mddev *mddev)
44944494

44954495
/*
44964496
* some node is already performing reshape, and no need to
4497-
* call md_bitmap_resize again since it should be called when
4497+
* call bitmap_ops->resize again since it should be called when
44984498
* receiving BITMAP_RESIZE msg
44994499
*/
45004500
if ((sb && (le32_to_cpu(sb->feature_map) &
45014501
MD_FEATURE_RESHAPE_ACTIVE)) || (oldsize == newsize))
45024502
goto out;
45034503

4504-
ret = md_bitmap_resize(mddev, newsize, 0, false);
4504+
ret = mddev->bitmap_ops->resize(mddev, newsize, 0, false);
45054505
if (ret)
45064506
goto abort;
45074507

45084508
ret = md_cluster_ops->resize_bitmaps(mddev, newsize, oldsize);
45094509
if (ret) {
4510-
md_bitmap_resize(mddev, oldsize, 0, false);
4510+
mddev->bitmap_ops->resize(mddev, oldsize, 0, false);
45114511
goto abort;
45124512
}
45134513
}

drivers/md/raid5.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8323,7 +8323,7 @@ static int raid5_resize(struct mddev *mddev, sector_t sectors)
83238323
mddev->array_sectors > newsize)
83248324
return -EINVAL;
83258325

8326-
ret = md_bitmap_resize(mddev, sectors, 0, false);
8326+
ret = mddev->bitmap_ops->resize(mddev, sectors, 0, false);
83278327
if (ret)
83288328
return ret;
83298329

0 commit comments

Comments
 (0)