]> www.infradead.org Git - users/jedix/linux-maple.git/commit
md: Don't wait for MD_RECOVERY_NEEDED for HOT_REMOVE_DISK ioctl
authorYu Kuai <yukuai3@huawei.com>
Thu, 27 Jun 2024 11:23:21 +0000 (19:23 +0800)
committerSong Liu <song@kernel.org>
Thu, 4 Jul 2024 06:32:03 +0000 (06:32 +0000)
commita1fd37f97808db4fa1bf55da0275790c42521e45
tree6279537564e6242df9f40558c3792a662ec403cf
parent1f4a72ff00cafa74b43b0c8a37573c78f86ed1a8
md: Don't wait for MD_RECOVERY_NEEDED for HOT_REMOVE_DISK ioctl

Commit 90f5f7ad4f38 ("md: Wait for md_check_recovery before attempting
device removal.") explained in the commit message that failed device
must be reomoved from the personality first by md_check_recovery(),
before it can be removed from the array. That's the reason the commit
add the code to wait for MD_RECOVERY_NEEDED.

However, this is not the case now, because remove_and_add_spares() is
called directly from hot_remove_disk() from ioctl path, hence failed
device(marked faulty) can be removed from the personality by ioctl.

On the other hand, the commit introduced a performance problem that
if MD_RECOVERY_NEEDED is set and the array is not running, ioctl will
wait for 5s before it can return failure to user.

Since the waiting is not needed now, fix the problem by removing the
waiting.

Fixes: 90f5f7ad4f38 ("md: Wait for md_check_recovery before attempting device removal.")
Reported-by: Mateusz Kusiak <mateusz.kusiak@linux.intel.com>
Closes: https://lore.kernel.org/all/814ff6ee-47a2-4ba0-963e-cf256ee4ecfa@linux.intel.com/
Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Signed-off-by: Song Liu <song@kernel.org>
Link: https://lore.kernel.org/r/20240627112321.3044744-1-yukuai1@huaweicloud.com
drivers/md/md.c