[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <25cce813-7e4e-b82b-48fa-b0ff0b3f3bb2@huaweicloud.com>
Date: Thu, 27 Feb 2025 19:48:08 +0800
From: Yu Kuai <yukuai1@...weicloud.com>
To: Zheng Qixing <zhengqixing@...weicloud.com>, axboe@...nel.dk,
song@...nel.org, dan.j.williams@...el.com, vishal.l.verma@...el.com,
dave.jiang@...el.com, ira.weiny@...el.com, dlemoal@...nel.org,
kch@...dia.com, yanjun.zhu@...ux.dev, hare@...e.de, zhengqixing@...wei.com,
colyli@...nel.org, geliang@...nel.org, xni@...hat.com
Cc: linux-block@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-raid@...r.kernel.org, nvdimm@...ts.linux.dev, yi.zhang@...wei.com,
yangerkun@...wei.com, "yukuai (C)" <yukuai3@...wei.com>
Subject: Re: [PATCH V2 11/12] md: improve return types of badblocks handling
functions
在 2025/02/27 15:55, Zheng Qixing 写道:
> From: Zheng Qixing <zhengqixing@...wei.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 <zhengqixing@...wei.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 <yukuai3@...wei.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);
>
Powered by blists - more mailing lists