Message ID | 20250221081109.734170-12-zhengqixing@huaweicloud.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | badblocks: bugfix and cleanup for badblocks | expand |
Hi, one nit below 在 2025/02/21 16:11, Zheng Qixing 写道: > From: Zheng Qixing <zhengqixing@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 <zhengqixing@huawei.com> > --- > drivers/md/md.c | 20 +++++++++----------- > drivers/md/md.h | 8 ++++---- > drivers/md/raid1.c | 6 +++--- > drivers/md/raid10.c | 6 +++--- > 4 files changed, 19 insertions(+), 21 deletions(-) > > diff --git a/drivers/md/md.c b/drivers/md/md.c > index 49d826e475cb..76c437376542 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,24 +9872,22 @@ 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; > else > s += rdev->data_offset; > > - if (!badblocks_clear(&rdev->badblocks, s, sectors)) > - return 0; > + badblocks_clear(&rdev->badblocks, s, sectors); Plese don't make functional change, and this dones not make sense to me. Thanks, Kuai > > 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 9d57a88dbd26..8beb8cccc6af 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 efe93b979167..7ed933181712 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); >
diff --git a/drivers/md/md.c b/drivers/md/md.c index 49d826e475cb..76c437376542 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,24 +9872,22 @@ 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; else s += rdev->data_offset; - if (!badblocks_clear(&rdev->badblocks, s, sectors)) - return 0; + badblocks_clear(&rdev->badblocks, s, sectors); 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 9d57a88dbd26..8beb8cccc6af 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 efe93b979167..7ed933181712 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);