> On Aug 21, 2019, at 7:16 AM, Guilherme G. Piccoli <gpiccoli@xxxxxxxxxxxxx> wrote: > > On 19/08/2019 18:57, Song Liu wrote: >> [...] >> How about we test this when we do clear_bit(Faulty..)? And maybe also in >> add_new_disk()? >> >> Thanks, >> Song >> > > Song, thanks for the suggestions. I've been working in the refactor, so > far it's working fine. But I cannot re-add a member to raid0/linear > without performing a full stop (with "mdadm --stop"), and in this case > md_clean() will clear the flag. Restarting array this way works fine. > > If I try writing 'inactive' to array_state, I cannot reinsert the member > to the array. That said, I don't think we need to worry in clearing > MD_BROKEN for RAID0/LINEAR, and it makes things far easier. > Are you ok with that? I'll submit V3 after our discussion. > What do you mean by "not clear MD_BROKEN"? Do you mean we need to restart the array? IOW, the following won't work: mdadm --fail /dev/md0 /dev/sdx mdadm --remove /dev/md0 /dev/sdx mdadm --add /dev/md0 /dev/sdx And we need the following instead: mdadm --fail /dev/md0 /dev/sdx mdadm --remove /dev/md0 /dev/sdx mdadm --stop /dev/md0 /dev/sdx mdadm --add /dev/md0 /dev/sdx mdadm --run /dev/md0 /dev/sdx Thanks, Song