md: fix sync_action incorrect display during resync
authorZheng Qixing <zhengqixing@huawei.com>
Sat, 16 Aug 2025 00:25:34 +0000 (08:25 +0800)
committerYu Kuai <yukuai3@huawei.com>
Sat, 16 Aug 2025 00:52:33 +0000 (08:52 +0800)
commitb7ee30f0efd12f42735ae233071015389407966c
tree1715f7bf3b71f399106d118b2dcdd1170ef9a042
parentcb0780ad4333040a98e10f014b593ef738a3f31e
md: fix sync_action incorrect display during resync

During raid resync, if a disk becomes faulty, the operation is
briefly interrupted. The MD_RECOVERY_RECOVER flag triggered by
the disk failure causes sync_action to incorrectly show "recover"
instead of "resync". The same issue affects reshape operations.

Reproduction steps:
  mdadm -Cv /dev/md1 -l1 -n4 -e1.2 /dev/sd{a..d} // -> resync happened
  mdadm -f /dev/md1 /dev/sda                     // -> resync interrupted
  cat sync_action
  -> recover

Add progress checks in md_sync_action() for resync/recover/reshape
to ensure the interface correctly reports the actual operation type.

Fixes: 4b10a3bc67c1 ("md: ensure resync is prioritized over recovery")
Signed-off-by: Zheng Qixing <zhengqixing@huawei.com>
Link: https://lore.kernel.org/linux-raid/20250816002534.1754356-3-zhengqixing@huaweicloud.com
Signed-off-by: Yu Kuai <yukuai3@huawei.com>
drivers/md/md.c