diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 00a34faabcdfbf702d32c07f12c477923c6c5e4a..0b1a4339a4378370ce198ca69fac21af4f868eb7 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -7532,9 +7532,12 @@ static int raid5_remove_disk(struct mddev *mddev, struct md_rdev *rdev) /* * we can't wait pending write here, as this is called in * raid5d, wait will deadlock. + * neilb: there is no locking about new writes here, + * so this cannot be safe. */ - if (atomic_read(&mddev->writes_pending)) + if (atomic_read(&conf->active_stripes)) { return -EBUSY; + } log_exit(conf); return 0; }