diff options
Diffstat (limited to 'drivers/block/genhd.c')
-rw-r--r-- | drivers/block/genhd.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/block/genhd.c b/drivers/block/genhd.c index 53f7d846b747..43805e4d31e9 100644 --- a/drivers/block/genhd.c +++ b/drivers/block/genhd.c | |||
@@ -582,10 +582,16 @@ struct seq_operations diskstats_op = { | |||
582 | .show = diskstats_show | 582 | .show = diskstats_show |
583 | }; | 583 | }; |
584 | 584 | ||
585 | |||
586 | struct gendisk *alloc_disk(int minors) | 585 | struct gendisk *alloc_disk(int minors) |
587 | { | 586 | { |
588 | struct gendisk *disk = kmalloc(sizeof(struct gendisk), GFP_KERNEL); | 587 | return alloc_disk_node(minors, -1); |
588 | } | ||
589 | |||
590 | struct gendisk *alloc_disk_node(int minors, int node_id) | ||
591 | { | ||
592 | struct gendisk *disk; | ||
593 | |||
594 | disk = kmalloc_node(sizeof(struct gendisk), GFP_KERNEL, node_id); | ||
589 | if (disk) { | 595 | if (disk) { |
590 | memset(disk, 0, sizeof(struct gendisk)); | 596 | memset(disk, 0, sizeof(struct gendisk)); |
591 | if (!init_disk_stats(disk)) { | 597 | if (!init_disk_stats(disk)) { |
@@ -594,7 +600,7 @@ struct gendisk *alloc_disk(int minors) | |||
594 | } | 600 | } |
595 | if (minors > 1) { | 601 | if (minors > 1) { |
596 | int size = (minors - 1) * sizeof(struct hd_struct *); | 602 | int size = (minors - 1) * sizeof(struct hd_struct *); |
597 | disk->part = kmalloc(size, GFP_KERNEL); | 603 | disk->part = kmalloc_node(size, GFP_KERNEL, node_id); |
598 | if (!disk->part) { | 604 | if (!disk->part) { |
599 | kfree(disk); | 605 | kfree(disk); |
600 | return NULL; | 606 | return NULL; |
@@ -610,6 +616,7 @@ struct gendisk *alloc_disk(int minors) | |||
610 | } | 616 | } |
611 | 617 | ||
612 | EXPORT_SYMBOL(alloc_disk); | 618 | EXPORT_SYMBOL(alloc_disk); |
619 | EXPORT_SYMBOL(alloc_disk_node); | ||
613 | 620 | ||
614 | struct kobject *get_disk(struct gendisk *disk) | 621 | struct kobject *get_disk(struct gendisk *disk) |
615 | { | 622 | { |