From: Yu Kuai <yukuai3@huawei.com>
There are no functional changes, just to make the code simpler and
prepare to delay remove_and_add_spares() to md_start_sync().
Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
drivers/md/md.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/md/md.c b/drivers/md/md.c
index ceace5ffadd6..11d27c934fdd 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -9169,6 +9169,14 @@ static bool rdev_removeable(struct md_rdev *rdev)
return true;
}
+static bool rdev_is_spare(struct md_rdev *rdev)
+{
+ return !test_bit(Candidate, &rdev->flags) && rdev->raid_disk >= 0 &&
+ !test_bit(In_sync, &rdev->flags) &&
+ !test_bit(Journal, &rdev->flags) &&
+ !test_bit(Faulty, &rdev->flags);
+}
+
static int remove_and_add_spares(struct mddev *mddev,
struct md_rdev *this)
{
@@ -9217,13 +9225,10 @@ static int remove_and_add_spares(struct mddev *mddev,
rdev_for_each(rdev, mddev) {
if (this && this != rdev)
continue;
+ if (rdev_is_spare(rdev))
+ spares++;
if (test_bit(Candidate, &rdev->flags))
continue;
- if (rdev->raid_disk >= 0 &&
- !test_bit(In_sync, &rdev->flags) &&
- !test_bit(Journal, &rdev->flags) &&
- !test_bit(Faulty, &rdev->flags))
- spares++;
if (rdev->raid_disk >= 0)
continue;
if (test_bit(Faulty, &rdev->flags))
--
2.39.2
On Sun, Aug 20, 2023 at 5:13 PM Yu Kuai <yukuai1@huaweicloud.com> wrote:
>
> From: Yu Kuai <yukuai3@huawei.com>
>
> There are no functional changes, just to make the code simpler and
> prepare to delay remove_and_add_spares() to md_start_sync().
>
> Signed-off-by: Yu Kuai <yukuai3@huawei.com>
> ---
> drivers/md/md.c | 15 ++++++++++-----
> 1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/md/md.c b/drivers/md/md.c
> index ceace5ffadd6..11d27c934fdd 100644
> --- a/drivers/md/md.c
> +++ b/drivers/md/md.c
> @@ -9169,6 +9169,14 @@ static bool rdev_removeable(struct md_rdev *rdev)
> return true;
> }
>
> +static bool rdev_is_spare(struct md_rdev *rdev)
> +{
> + return !test_bit(Candidate, &rdev->flags) && rdev->raid_disk >= 0 &&
> + !test_bit(In_sync, &rdev->flags) &&
> + !test_bit(Journal, &rdev->flags) &&
> + !test_bit(Faulty, &rdev->flags);
> +}
> +
> static int remove_and_add_spares(struct mddev *mddev,
> struct md_rdev *this)
> {
> @@ -9217,13 +9225,10 @@ static int remove_and_add_spares(struct mddev *mddev,
> rdev_for_each(rdev, mddev) {
> if (this && this != rdev)
> continue;
> + if (rdev_is_spare(rdev))
> + spares++;
> if (test_bit(Candidate, &rdev->flags))
> continue;
Hi Kuai
Why not put rdev_is_spare after testing Candidate?
Best Regards
Xiao
> - if (rdev->raid_disk >= 0 &&
> - !test_bit(In_sync, &rdev->flags) &&
> - !test_bit(Journal, &rdev->flags) &&
> - !test_bit(Faulty, &rdev->flags))
> - spares++;
> if (rdev->raid_disk >= 0)
> continue;
> if (test_bit(Faulty, &rdev->flags))
> --
> 2.39.2
>
On Wed, Aug 23, 2023 at 10:20 AM Xiao Ni <xni@redhat.com> wrote:
>
> On Sun, Aug 20, 2023 at 5:13 PM Yu Kuai <yukuai1@huaweicloud.com> wrote:
> >
> > From: Yu Kuai <yukuai3@huawei.com>
> >
> > There are no functional changes, just to make the code simpler and
> > prepare to delay remove_and_add_spares() to md_start_sync().
> >
> > Signed-off-by: Yu Kuai <yukuai3@huawei.com>
> > ---
> > drivers/md/md.c | 15 ++++++++++-----
> > 1 file changed, 10 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/md/md.c b/drivers/md/md.c
> > index ceace5ffadd6..11d27c934fdd 100644
> > --- a/drivers/md/md.c
> > +++ b/drivers/md/md.c
> > @@ -9169,6 +9169,14 @@ static bool rdev_removeable(struct md_rdev *rdev)
> > return true;
> > }
> >
> > +static bool rdev_is_spare(struct md_rdev *rdev)
> > +{
> > + return !test_bit(Candidate, &rdev->flags) && rdev->raid_disk >= 0 &&
> > + !test_bit(In_sync, &rdev->flags) &&
> > + !test_bit(Journal, &rdev->flags) &&
> > + !test_bit(Faulty, &rdev->flags);
> > +}
> > +
> > static int remove_and_add_spares(struct mddev *mddev,
> > struct md_rdev *this)
> > {
> > @@ -9217,13 +9225,10 @@ static int remove_and_add_spares(struct mddev *mddev,
> > rdev_for_each(rdev, mddev) {
> > if (this && this != rdev)
> > continue;
> > + if (rdev_is_spare(rdev))
> > + spares++;
> > if (test_bit(Candidate, &rdev->flags))
> > continue;
>
> Hi Kuai
>
> Why not put rdev_is_spare after testing Candidate?
>
> Best Regards
> Xiao
I know the answer now, Because the next patch wants to put codes into
the function rdev_addable
>
> > - if (rdev->raid_disk >= 0 &&
> > - !test_bit(In_sync, &rdev->flags) &&
> > - !test_bit(Journal, &rdev->flags) &&
> > - !test_bit(Faulty, &rdev->flags))
> > - spares++;
> > if (rdev->raid_disk >= 0)
> > continue;
> > if (test_bit(Faulty, &rdev->flags))
> > --
> > 2.39.2
> >
Reviewed-by: Xiao Ni <xni@redhat.com>
Hi,
在 2023/08/23 10:28, Xiao Ni 写道:
> On Wed, Aug 23, 2023 at 10:20 AM Xiao Ni <xni@redhat.com> wrote:
>>
>> On Sun, Aug 20, 2023 at 5:13 PM Yu Kuai <yukuai1@huaweicloud.com> wrote:
>>>
>>> From: Yu Kuai <yukuai3@huawei.com>
>>>
>>> There are no functional changes, just to make the code simpler and
>>> prepare to delay remove_and_add_spares() to md_start_sync().
>>>
>>> Signed-off-by: Yu Kuai <yukuai3@huawei.com>
>>> ---
>>> drivers/md/md.c | 15 ++++++++++-----
>>> 1 file changed, 10 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/md/md.c b/drivers/md/md.c
>>> index ceace5ffadd6..11d27c934fdd 100644
>>> --- a/drivers/md/md.c
>>> +++ b/drivers/md/md.c
>>> @@ -9169,6 +9169,14 @@ static bool rdev_removeable(struct md_rdev *rdev)
>>> return true;
>>> }
>>>
>>> +static bool rdev_is_spare(struct md_rdev *rdev)
>>> +{
>>> + return !test_bit(Candidate, &rdev->flags) && rdev->raid_disk >= 0 &&
>>> + !test_bit(In_sync, &rdev->flags) &&
>>> + !test_bit(Journal, &rdev->flags) &&
>>> + !test_bit(Faulty, &rdev->flags);
>>> +}
>>> +
>>> static int remove_and_add_spares(struct mddev *mddev,
>>> struct md_rdev *this)
>>> {
>>> @@ -9217,13 +9225,10 @@ static int remove_and_add_spares(struct mddev *mddev,
>>> rdev_for_each(rdev, mddev) {
>>> if (this && this != rdev)
>>> continue;
>>> + if (rdev_is_spare(rdev))
>>> + spares++;
>>> if (test_bit(Candidate, &rdev->flags))
>>> continue;
>>
>> Hi Kuai
>>
>> Why not put rdev_is_spare after testing Candidate?
>>
>> Best Regards
>> Xiao
>
> I know the answer now, Because the next patch wants to put codes into
> the function rdev_addable
Yes, and thanks for the review!
Kuai
>>
>>> - if (rdev->raid_disk >= 0 &&
>>> - !test_bit(In_sync, &rdev->flags) &&
>>> - !test_bit(Journal, &rdev->flags) &&
>>> - !test_bit(Faulty, &rdev->flags))
>>> - spares++;
>>> if (rdev->raid_disk >= 0)
>>> continue;
>>> if (test_bit(Faulty, &rdev->flags))
>>> --
>>> 2.39.2
>>>
>
> Reviewed-by: Xiao Ni <xni@redhat.com>
>
> .
>
© 2016 - 2025 Red Hat, Inc.