Re: [PATCH AUTOSEL 4.19 118/146] MD: fix invalid stored role for a disk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sasha Levin <sashal@xxxxxxxxxx> 于2018年11月1日周四 上午12:45写道:
>
> From: Shaohua Li <shli@xxxxxx>
>
> [ Upstream commit d595567dc4f0c1d90685ec1e2e296e2cad2643ac ]
>
> If we change the number of array's device after device is removed from array,
> then add the device back to array, we can see that device is added as active
> role instead of spare which we expected.
>
> Please see the below link for details:
> https://marc.info/?l=linux-raid&m=153736982015076&w=2
>
> This is caused by that we prefer to use device's previous role which is
> recorded by saved_raid_disk, but we should respect the new number of
> conf->raid_disks since it could be changed after device is removed.
>
> Reported-by: Gioh Kim <gi-oh.kim@xxxxxxxxxxxxxxxx>
> Tested-by: Gioh Kim <gi-oh.kim@xxxxxxxxxxxxxxxx>
> Acked-by: Guoqing Jiang <gqjiang@xxxxxxxx>9e753ba9b9b405e3902d9f08aec5f2ea58a0c317
> Signed-off-by: Shaohua Li <shli@xxxxxx>
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
Hi Sasha,

This patch breaks linear hotadd please also include  commit
9e753ba9b9b405e3902d9f08aec5f2ea58a0c317
MD: fix invalid stored role for a disk - try2

Regards,
Jack Wang

> ---
>  drivers/md/md.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/md/md.c b/drivers/md/md.c
> index 8668793262d0..85459c17cc60 100644
> --- a/drivers/md/md.c
> +++ b/drivers/md/md.c
> @@ -1776,6 +1776,10 @@ static int super_1_validate(struct mddev *mddev, struct md_rdev *rdev)
>                         } else
>                                 set_bit(In_sync, &rdev->flags);
>                         rdev->raid_disk = role;
> +                       if (role >= mddev->raid_disks) {
> +                               rdev->saved_raid_disk = -1;
> +                               rdev->raid_disk = -1;
> +                       }
>                         break;
>                 }
>                 if (sb->devflags & WriteMostly1)
> --
> 2.17.1
>




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux