From: Yu Kuai <yuku...@huawei.com>

Prepare to introduce CONFIG_MD_BITMAP.

Signed-off-by: Yu Kuai <yuku...@huawei.com>
---
 drivers/md/raid5.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 9098762ccfa6..f81600a6cd14 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -6505,7 +6505,8 @@ static inline sector_t raid5_sync_request(struct mddev 
*mddev, sector_t sector_n
                                           &sync_blocks);
                else /* completed sync */
                        conf->fullsync = 0;
-               mddev->bitmap_ops->close_sync(mddev);
+               if (md_bitmap_enabled(mddev))
+                       mddev->bitmap_ops->close_sync(mddev);
 
                return 0;
        }
@@ -6543,7 +6544,8 @@ static inline sector_t raid5_sync_request(struct mddev 
*mddev, sector_t sector_n
                return sync_blocks * RAID5_STRIPE_SECTORS(conf);
        }
 
-       mddev->bitmap_ops->cond_end_sync(mddev, sector_nr, false);
+       if (md_bitmap_enabled(mddev))
+               mddev->bitmap_ops->cond_end_sync(mddev, sector_nr, false);
 
        sh = raid5_get_active_stripe(conf, NULL, sector_nr,
                                     R5_GAS_NOBLOCK);
@@ -6769,7 +6771,8 @@ static void raid5d(struct md_thread *thread)
                        /* Now is a good time to flush some bitmap updates */
                        conf->seq_flush++;
                        spin_unlock_irq(&conf->device_lock);
-                       mddev->bitmap_ops->unplug(mddev, true);
+                       if (md_bitmap_enabled(mddev))
+                               mddev->bitmap_ops->unplug(mddev, true);
                        spin_lock_irq(&conf->device_lock);
                        conf->seq_write = conf->seq_flush;
                        activate_bit_delay(conf, conf->temp_inactive_list);
@@ -8318,7 +8321,6 @@ static int raid5_resize(struct mddev *mddev, sector_t 
sectors)
         */
        sector_t newsize;
        struct r5conf *conf = mddev->private;
-       int ret;
 
        if (raid5_has_log(conf) || raid5_has_ppl(conf))
                return -EINVAL;
@@ -8328,9 +8330,12 @@ static int raid5_resize(struct mddev *mddev, sector_t 
sectors)
            mddev->array_sectors > newsize)
                return -EINVAL;
 
-       ret = mddev->bitmap_ops->resize(mddev, sectors, 0);
-       if (ret)
-               return ret;
+       if (md_bitmap_enabled(mddev)) {
+               int ret = mddev->bitmap_ops->resize(mddev, sectors, 0);
+
+               if (ret)
+                       return ret;
+       }
 
        md_set_array_sectors(mddev, newsize);
        if (sectors > mddev->dev_sectors &&
-- 
2.39.2


Reply via email to