From: Guoqing Jiang Date: Sat, 4 Apr 2020 21:57:10 +0000 (+0200) Subject: md: flush md_rdev_misc_wq for HOT_ADD_DISK case X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=78b990cf2822d1150a419c13be48e74aefa83f27;p=linux.git md: flush md_rdev_misc_wq for HOT_ADD_DISK case Since rdev->kobj is removed asynchronously, it is possible that the rdev->kobj still exists when try to add the rdev again after rdev is removed. But this path md_ioctl (HOT_ADD_DISK) -> hot_add_disk -> bind_rdev_to_array missed it. Signed-off-by: Guoqing Jiang Signed-off-by: Song Liu --- diff --git a/drivers/md/md.c b/drivers/md/md.c index f5dfa503fb6fe..95b72e35b3555 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -7512,7 +7512,7 @@ static int md_ioctl(struct block_device *bdev, fmode_t mode, } - if (cmd == ADD_NEW_DISK) + if (cmd == ADD_NEW_DISK || cmd == HOT_ADD_DISK) flush_rdev_wq(mddev); if (cmd == HOT_REMOVE_DISK)