]> git.baikalelectronics.ru Git - kernel.git/commit
dm raid: fix RAID leg rebuild errors
authorHeinz Mauelshagen <heinzm@redhat.com>
Thu, 6 Sep 2018 20:54:29 +0000 (22:54 +0200)
committerMike Snitzer <snitzer@redhat.com>
Thu, 6 Sep 2018 21:07:56 +0000 (17:07 -0400)
commitb0af4f911357680fdc4af482eaada86b55b6ace2
tree4fb2525794d41162eb2be6cb4617b60c6ebc37b6
parent2243920c489e5ae994c7a354a5cbb1f674784cae
dm raid: fix RAID leg rebuild errors

On fast devices such as NVMe, a flaw in rs_get_progress() results in
false target status output when userspace lvm2 requests leg rebuilds
(symptom of the failure is device health chars 'aaaaaaaa' instead of
expected 'aAaAAAAA' causing lvm2 to fail).

The correct sync action state definitions already exist in
decipher_sync_action() so fix rs_get_progress() to use it.

Change decipher_sync_action() to return an enum rather than a string for
the sync states and call it from rs_get_progress().  Introduce
sync_str() to translate from enum to the string that is needed by
raid_status().

Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-raid.c