dm raid: fix nosync status
Fix a race for "nosync" activations providing "aa.." device health characters and "0/N" sync ratio rather than "AA..." and "N/N". Occurs when status for the raid set is retrieved during resume before the MD sync thread starts and clears the MD_RECOVERY_NEEDED flag. Cc: stable@vger.kernel.org # 4.16+ Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com>
This commit is contained in:
parent
8192a0cd76
commit
880bcce0dc
|
@ -3408,7 +3408,8 @@ static sector_t rs_get_progress(struct raid_set *rs, unsigned long recovery,
|
||||||
set_bit(RT_FLAG_RS_IN_SYNC, &rs->runtime_flags);
|
set_bit(RT_FLAG_RS_IN_SYNC, &rs->runtime_flags);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (!test_bit(MD_RECOVERY_INTR, &recovery) &&
|
if (!test_bit(__CTR_FLAG_NOSYNC, &rs->ctr_flags) &&
|
||||||
|
!test_bit(MD_RECOVERY_INTR, &recovery) &&
|
||||||
(test_bit(MD_RECOVERY_NEEDED, &recovery) ||
|
(test_bit(MD_RECOVERY_NEEDED, &recovery) ||
|
||||||
test_bit(MD_RECOVERY_RESHAPE, &recovery) ||
|
test_bit(MD_RECOVERY_RESHAPE, &recovery) ||
|
||||||
test_bit(MD_RECOVERY_RUNNING, &recovery)))
|
test_bit(MD_RECOVERY_RUNNING, &recovery)))
|
||||||
|
|
Loading…
Reference in New Issue