drivers/md/md-bitmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
From: Li Nan <linan122@huawei.com>
The type of timeout is unsigned long, but it is compared with 'LONG_MAX'
in timeout_store(), which lead to value within (LONG_MAX, ULONG_MAX.]/HZ
can't be set. Fix it by checking input value with ULONG_MAX.
Signed-off-by: Li Nan <linan122@huawei.com>
---
drivers/md/md-bitmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c
index bc8d7565171d..5fd9cba65be8 100644
--- a/drivers/md/md-bitmap.c
+++ b/drivers/md/md-bitmap.c
@@ -2460,7 +2460,7 @@ timeout_store(struct mddev *mddev, const char *buf, size_t len)
return rv;
/* just to make sure we don't overflow... */
- if (timeout >= LONG_MAX / HZ)
+ if (timeout >= ULONG_MAX / HZ)
return -EINVAL;
timeout = timeout * HZ / 10000;
--
2.31.1
Hi, 在 2023/05/27 18:18, linan666@huaweicloud.com 写道: > From: Li Nan <linan122@huawei.com> > > The type of timeout is unsigned long, but it is compared with 'LONG_MAX' > in timeout_store(), which lead to value within (LONG_MAX, ULONG_MAX.]/HZ > can't be set. Fix it by checking input value with ULONG_MAX. > nak, because MAX_SCHEDULE_TIMEOUT is LONG_MAX, and LONG_MAX should be enough for real use case. Thanks, Kuai > Signed-off-by: Li Nan <linan122@huawei.com> > --- > drivers/md/md-bitmap.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c > index bc8d7565171d..5fd9cba65be8 100644 > --- a/drivers/md/md-bitmap.c > +++ b/drivers/md/md-bitmap.c > @@ -2460,7 +2460,7 @@ timeout_store(struct mddev *mddev, const char *buf, size_t len) > return rv; > > /* just to make sure we don't overflow... */ > - if (timeout >= LONG_MAX / HZ) > + if (timeout >= ULONG_MAX / HZ) > return -EINVAL; > > timeout = timeout * HZ / 10000; >
From: Li Nan <linan122@huawei.com>
Commit 1a855a060665 ("md: fix bug with re-adding of partially recovered
device.") only add device which is set to In_sync. But it let devices
without metadata cannot be added when they should be.
Commit bf572541ab44 ("md: fix regression with re-adding devices to arrays
with no metadata") fix the above issue, it set device without metadata to
In_sync when add new disk.
However, after commit f466722ca614 ("md: Change handling of save_raid_disk
and metadata update during recovery.") deletes changes of the first patch,
setting In_sync for devcie without metadata is meanless because the flag
will be cleared soon and will not be used during this period. Clean it up.
Signed-off-by: Li Nan <linan122@huawei.com>
---
drivers/md/md.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 8e344b4b3444..e5b67b2d2166 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -6733,7 +6733,6 @@ int md_add_new_disk(struct mddev *mddev, struct mdu_disk_info_s *info)
if (info->state & (1<<MD_DISK_SYNC) &&
info->raid_disk < mddev->raid_disks) {
rdev->raid_disk = info->raid_disk;
- set_bit(In_sync, &rdev->flags);
clear_bit(Bitmap_sync, &rdev->flags);
} else
rdev->raid_disk = -1;
--
2.31.1
在 2023/05/27 18:18, linan666@huaweicloud.com 写道:
> From: Li Nan <linan122@huawei.com>
>
> Commit 1a855a060665 ("md: fix bug with re-adding of partially recovered
> device.") only add device which is set to In_sync. But it let devices
> without metadata cannot be added when they should be.
>
> Commit bf572541ab44 ("md: fix regression with re-adding devices to arrays
> with no metadata") fix the above issue, it set device without metadata to
> In_sync when add new disk.
>
> However, after commit f466722ca614 ("md: Change handling of save_raid_disk
> and metadata update during recovery.") deletes changes of the first patch,
> setting In_sync for devcie without metadata is meanless because the flag
> will be cleared soon and will not be used during this period. Clean it up.
LGME, feel free to add:
Reviewed-by: Yu Kuai <yukuai3@huawei.com>
>
> Signed-off-by: Li Nan <linan122@huawei.com>
> ---
> drivers/md/md.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/md/md.c b/drivers/md/md.c
> index 8e344b4b3444..e5b67b2d2166 100644
> --- a/drivers/md/md.c
> +++ b/drivers/md/md.c
> @@ -6733,7 +6733,6 @@ int md_add_new_disk(struct mddev *mddev, struct mdu_disk_info_s *info)
> if (info->state & (1<<MD_DISK_SYNC) &&
> info->raid_disk < mddev->raid_disks) {
> rdev->raid_disk = info->raid_disk;
> - set_bit(In_sync, &rdev->flags);
> clear_bit(Bitmap_sync, &rdev->flags);
> } else
> rdev->raid_disk = -1;
>
On Sun, May 28, 2023 at 12:49 AM Yu Kuai <yukuai1@huaweicloud.com> wrote:
>
> 在 2023/05/27 18:18, linan666@huaweicloud.com 写道:
> > From: Li Nan <linan122@huawei.com>
> >
> > Commit 1a855a060665 ("md: fix bug with re-adding of partially recovered
> > device.") only add device which is set to In_sync. But it let devices
> > without metadata cannot be added when they should be.
> >
> > Commit bf572541ab44 ("md: fix regression with re-adding devices to arrays
> > with no metadata") fix the above issue, it set device without metadata to
> > In_sync when add new disk.
> >
> > However, after commit f466722ca614 ("md: Change handling of save_raid_disk
> > and metadata update during recovery.") deletes changes of the first patch,
> > setting In_sync for devcie without metadata is meanless because the flag
> > will be cleared soon and will not be used during this period. Clean it up.
>
> LGME, feel free to add:
>
> Reviewed-by: Yu Kuai <yukuai3@huawei.com>
> >
> > Signed-off-by: Li Nan <linan122@huawei.com>
Applied to md-next.
Thanks,
Song
© 2016 - 2026 Red Hat, Inc.