@@ -5770,10 +5770,10 @@ int mddev_stack_new_rdev(struct mddev *mddev, struct md_rdev *rdev)
57705770 if (mddev_is_dm (mddev ))
57715771 return 0 ;
57725772
5773- lim = queue_limits_start_update (mddev -> queue );
5773+ lim = queue_limits_start_update (mddev -> gendisk -> queue );
57745774 queue_limits_stack_bdev (& lim , rdev -> bdev , rdev -> data_offset ,
57755775 mddev -> gendisk -> disk_name );
5776- return queue_limits_commit_update (mddev -> queue , & lim );
5776+ return queue_limits_commit_update (mddev -> gendisk -> queue , & lim );
57775777}
57785778EXPORT_SYMBOL_GPL (mddev_stack_new_rdev );
57795779
@@ -5877,8 +5877,7 @@ struct mddev *md_alloc(dev_t dev, char *name)
58775877 disk -> fops = & md_fops ;
58785878 disk -> private_data = mddev ;
58795879
5880- mddev -> queue = disk -> queue ;
5881- blk_queue_write_cache (mddev -> queue , true, true);
5880+ blk_queue_write_cache (disk -> queue , true, true);
58825881 disk -> events |= DISK_EVENT_MEDIA_CHANGE ;
58835882 mddev -> gendisk = disk ;
58845883 error = add_disk (disk );
@@ -6183,6 +6182,7 @@ int md_run(struct mddev *mddev)
61836182 }
61846183
61856184 if (!mddev_is_dm (mddev )) {
6185+ struct request_queue * q = mddev -> gendisk -> queue ;
61866186 bool nonrot = true;
61876187
61886188 rdev_for_each (rdev , mddev ) {
@@ -6194,14 +6194,14 @@ int md_run(struct mddev *mddev)
61946194 if (mddev -> degraded )
61956195 nonrot = false;
61966196 if (nonrot )
6197- blk_queue_flag_set (QUEUE_FLAG_NONROT , mddev -> queue );
6197+ blk_queue_flag_set (QUEUE_FLAG_NONROT , q );
61986198 else
6199- blk_queue_flag_clear (QUEUE_FLAG_NONROT , mddev -> queue );
6200- blk_queue_flag_set (QUEUE_FLAG_IO_STAT , mddev -> queue );
6199+ blk_queue_flag_clear (QUEUE_FLAG_NONROT , q );
6200+ blk_queue_flag_set (QUEUE_FLAG_IO_STAT , q );
62016201
62026202 /* Set the NOWAIT flags if all underlying devices support it */
62036203 if (nowait )
6204- blk_queue_flag_set (QUEUE_FLAG_NOWAIT , mddev -> queue );
6204+ blk_queue_flag_set (QUEUE_FLAG_NOWAIT , q );
62056205 }
62066206 if (pers -> sync_request ) {
62076207 if (mddev -> kobj .sd &&
@@ -6447,8 +6447,10 @@ static void mddev_detach(struct mddev *mddev)
64476447 mddev -> pers -> quiesce (mddev , 0 );
64486448 }
64496449 md_unregister_thread (mddev , & mddev -> thread );
6450+
6451+ /* the unplug fn references 'conf' */
64506452 if (!mddev_is_dm (mddev ))
6451- blk_sync_queue (mddev -> queue ); /* the unplug fn references 'conf'*/
6453+ blk_sync_queue (mddev -> gendisk -> queue );
64526454}
64536455
64546456static void __md_stop (struct mddev * mddev )
@@ -7166,7 +7168,7 @@ static int hot_add_disk(struct mddev *mddev, dev_t dev)
71667168 if (!bdev_nowait (rdev -> bdev )) {
71677169 pr_info ("%s: Disabling nowait because %pg does not support nowait\n" ,
71687170 mdname (mddev ), rdev -> bdev );
7169- blk_queue_flag_clear (QUEUE_FLAG_NOWAIT , mddev -> queue );
7171+ blk_queue_flag_clear (QUEUE_FLAG_NOWAIT , mddev -> gendisk -> queue );
71707172 }
71717173 /*
71727174 * Kick recovery, maybe this spare has to be added to the
0 commit comments