在 2025/02/27 15:55, Zheng Qixing 写道:
From: Zheng Qixing <zhengqix...@huawei.com>

rdev_set_badblocks() only indicates success/failure, so convert its return
type from int to boolean for better semantic clarity.

rdev_clear_badblocks() return value is never used by any caller, convert it
to void. This removes unnecessary value returns.

Also update narrow_write_error() in both raid1 and raid10 to use boolean
return type to match rdev_set_badblocks().

Signed-off-by: Zheng Qixing <zhengqix...@huawei.com>
---
  drivers/md/md.c     | 19 +++++++++----------
  drivers/md/md.h     |  8 ++++----
  drivers/md/raid1.c  |  6 +++---
  drivers/md/raid10.c |  6 +++---
  4 files changed, 19 insertions(+), 20 deletions(-)

LGTM
Reviewed-by: Yu Kuai <yuku...@huawei.com>

diff --git a/drivers/md/md.c b/drivers/md/md.c
index 49d826e475cb..9b9b2b4131d0 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -9841,9 +9841,9 @@ EXPORT_SYMBOL(md_finish_reshape);
/* Bad block management */ -/* Returns 1 on success, 0 on failure */
-int rdev_set_badblocks(struct md_rdev *rdev, sector_t s, int sectors,
-                      int is_new)
+/* Returns true on success, false on failure */
+bool rdev_set_badblocks(struct md_rdev *rdev, sector_t s, int sectors,
+                       int is_new)
  {
        struct mddev *mddev = rdev->mddev;
@@ -9855,7 +9855,7 @@ int rdev_set_badblocks(struct md_rdev *rdev, sector_t s, int sectors,
         * avoid it.
         */
        if (test_bit(Faulty, &rdev->flags))
-               return 1;
+               return true;
if (is_new)
                s += rdev->new_data_offset;
@@ -9863,7 +9863,7 @@ int rdev_set_badblocks(struct md_rdev *rdev, sector_t s, 
int sectors,
                s += rdev->data_offset;
if (!badblocks_set(&rdev->badblocks, s, sectors, 0))
-               return 0;
+               return false;
/* Make sure they get written out promptly */
        if (test_bit(ExternalBbl, &rdev->flags))
@@ -9872,12 +9872,12 @@ int rdev_set_badblocks(struct md_rdev *rdev, sector_t 
s, int sectors,
        set_mask_bits(&mddev->sb_flags, 0,
                      BIT(MD_SB_CHANGE_CLEAN) | BIT(MD_SB_CHANGE_PENDING));
        md_wakeup_thread(rdev->mddev->thread);
-       return 1;
+       return true;
  }
  EXPORT_SYMBOL_GPL(rdev_set_badblocks);
-int rdev_clear_badblocks(struct md_rdev *rdev, sector_t s, int sectors,
-                        int is_new)
+void rdev_clear_badblocks(struct md_rdev *rdev, sector_t s, int sectors,
+                         int is_new)
  {
        if (is_new)
                s += rdev->new_data_offset;
@@ -9885,11 +9885,10 @@ int rdev_clear_badblocks(struct md_rdev *rdev, sector_t 
s, int sectors,
                s += rdev->data_offset;
if (!badblocks_clear(&rdev->badblocks, s, sectors))
-               return 0;
+               return;
if (test_bit(ExternalBbl, &rdev->flags))
                sysfs_notify_dirent_safe(rdev->sysfs_badblocks);
-       return 1;
  }
  EXPORT_SYMBOL_GPL(rdev_clear_badblocks);
diff --git a/drivers/md/md.h b/drivers/md/md.h
index def808064ad8..923a0ef51efe 100644
--- a/drivers/md/md.h
+++ b/drivers/md/md.h
@@ -289,10 +289,10 @@ static inline int rdev_has_badblock(struct md_rdev *rdev, 
sector_t s,
        return is_badblock(rdev, s, sectors, &first_bad, &bad_sectors);
  }
-extern int rdev_set_badblocks(struct md_rdev *rdev, sector_t s, int sectors,
-                             int is_new);
-extern int rdev_clear_badblocks(struct md_rdev *rdev, sector_t s, int sectors,
-                               int is_new);
+extern bool rdev_set_badblocks(struct md_rdev *rdev, sector_t s, int sectors,
+                              int is_new);
+extern void rdev_clear_badblocks(struct md_rdev *rdev, sector_t s, int sectors,
+                                int is_new);
  struct md_cluster_info;
/**
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index 10ea3af40991..8e9f303c5603 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -2486,7 +2486,7 @@ static void fix_read_error(struct r1conf *conf, struct 
r1bio *r1_bio)
        }
  }
-static int narrow_write_error(struct r1bio *r1_bio, int i)
+static bool narrow_write_error(struct r1bio *r1_bio, int i)
  {
        struct mddev *mddev = r1_bio->mddev;
        struct r1conf *conf = mddev->private;
@@ -2507,10 +2507,10 @@ static int narrow_write_error(struct r1bio *r1_bio, int 
i)
        sector_t sector;
        int sectors;
        int sect_to_write = r1_bio->sectors;
-       int ok = 1;
+       bool ok = true;
if (rdev->badblocks.shift < 0)
-               return 0;
+               return false;
block_sectors = roundup(1 << rdev->badblocks.shift,
                                bdev_logical_block_size(rdev->bdev) >> 9);
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index 15b9ae5bf84d..45faa34f0be8 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -2786,7 +2786,7 @@ static void fix_read_error(struct r10conf *conf, struct 
mddev *mddev, struct r10
        }
  }
-static int narrow_write_error(struct r10bio *r10_bio, int i)
+static bool narrow_write_error(struct r10bio *r10_bio, int i)
  {
        struct bio *bio = r10_bio->master_bio;
        struct mddev *mddev = r10_bio->mddev;
@@ -2807,10 +2807,10 @@ static int narrow_write_error(struct r10bio *r10_bio, 
int i)
        sector_t sector;
        int sectors;
        int sect_to_write = r10_bio->sectors;
-       int ok = 1;
+       bool ok = true;
if (rdev->badblocks.shift < 0)
-               return 0;
+               return false;
block_sectors = roundup(1 << rdev->badblocks.shift,
                                bdev_logical_block_size(rdev->bdev) >> 9);



Reply via email to