Skip to content

Commit 50e8274

Browse files
YuKuai-huaweiliu-song-6
authored andcommitted
md: don't wait faulty rdev in md_wait_for_blocked_rdev()
md_wait_for_blocked_rdev() is called for write IO while rdev is blocked, howerver, rdev can be faulty after choosing this rdev to write, and faulty rdev should never be accessed anymore, hence there is no point to wait for faulty rdev to be unblocked. Signed-off-by: Yu Kuai <[email protected]> Tested-by: Mariusz Tkaczyk <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Song Liu <[email protected]>
1 parent 4abfce1 commit 50e8274

File tree

1 file changed

+1
-3
lines changed

1 file changed

+1
-3
lines changed

drivers/md/md.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9762,9 +9762,7 @@ EXPORT_SYMBOL(md_reap_sync_thread);
97629762
void md_wait_for_blocked_rdev(struct md_rdev *rdev, struct mddev *mddev)
97639763
{
97649764
sysfs_notify_dirent_safe(rdev->sysfs_state);
9765-
wait_event_timeout(rdev->blocked_wait,
9766-
!test_bit(Blocked, &rdev->flags) &&
9767-
!test_bit(BlockedBadBlocks, &rdev->flags),
9765+
wait_event_timeout(rdev->blocked_wait, !rdev_blocked(rdev),
97689766
msecs_to_jiffies(5000));
97699767
rdev_dec_pending(rdev, mddev);
97709768
}

0 commit comments

Comments
 (0)