aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/block/brd.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/block/brd.c b/drivers/block/brd.c
index df8103dd40ac..c18586fccb6f 100644
--- a/drivers/block/brd.c
+++ b/drivers/block/brd.c
@@ -396,15 +396,14 @@ static struct brd_device *brd_alloc(int i)
396 disk->first_minor = i * max_part; 396 disk->first_minor = i * max_part;
397 disk->fops = &brd_fops; 397 disk->fops = &brd_fops;
398 disk->private_data = brd; 398 disk->private_data = brd;
399 disk->queue = brd->brd_queue;
400 disk->flags = GENHD_FL_EXT_DEVT; 399 disk->flags = GENHD_FL_EXT_DEVT;
401 sprintf(disk->disk_name, "ram%d", i); 400 sprintf(disk->disk_name, "ram%d", i);
402 set_capacity(disk, rd_size * 2); 401 set_capacity(disk, rd_size * 2);
403 disk->queue->backing_dev_info->capabilities |= BDI_CAP_SYNCHRONOUS_IO; 402 brd->brd_queue->backing_dev_info->capabilities |= BDI_CAP_SYNCHRONOUS_IO;
404 403
405 /* Tell the block layer that this is not a rotational device */ 404 /* Tell the block layer that this is not a rotational device */
406 blk_queue_flag_set(QUEUE_FLAG_NONROT, disk->queue); 405 blk_queue_flag_set(QUEUE_FLAG_NONROT, brd->brd_queue);
407 blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, disk->queue); 406 blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, brd->brd_queue);
408 407
409 return brd; 408 return brd;
410 409
@@ -436,6 +435,7 @@ static struct brd_device *brd_init_one(int i, bool *new)
436 435
437 brd = brd_alloc(i); 436 brd = brd_alloc(i);
438 if (brd) { 437 if (brd) {
438 brd->brd_disk->queue = brd->brd_queue;
439 add_disk(brd->brd_disk); 439 add_disk(brd->brd_disk);
440 list_add_tail(&brd->brd_list, &brd_devices); 440 list_add_tail(&brd->brd_list, &brd_devices);
441 } 441 }
@@ -503,8 +503,14 @@ static int __init brd_init(void)
503 503
504 /* point of no return */ 504 /* point of no return */
505 505
506 list_for_each_entry(brd, &brd_devices, brd_list) 506 list_for_each_entry(brd, &brd_devices, brd_list) {
507 /*
508 * associate with queue just before adding disk for
509 * avoiding to mess up failure path
510 */
511 brd->brd_disk->queue = brd->brd_queue;
507 add_disk(brd->brd_disk); 512 add_disk(brd->brd_disk);
513 }
508 514
509 blk_register_region(MKDEV(RAMDISK_MAJOR, 0), 1UL << MINORBITS, 515 blk_register_region(MKDEV(RAMDISK_MAJOR, 0), 1UL << MINORBITS,
510 THIS_MODULE, brd_probe, NULL, NULL); 516 THIS_MODULE, brd_probe, NULL, NULL);