diff --git a/drivers/md/md.c b/drivers/md/md.c
index c8c40c361532cc210f70699039f7341df65d6e1b..b5744b1bd2ba72ca611edd7c735f77e4968979d1 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -3322,6 +3322,9 @@ static int do_md_stop(mddev_t * mddev, int mode)
 				set_disk_ro(disk, 0);
 			blk_queue_make_request(mddev->queue, md_fail_request);
 			mddev->pers->stop(mddev);
+			mddev->queue->merge_bvec_fn = NULL;
+			mddev->queue->unplug_fn = NULL;
+			mddev->queue->issue_flush_fn = NULL;
 			if (mddev->pers->sync_request)
 				sysfs_remove_group(&mddev->kobj, &md_redundancy_group);