diff options
author | Tejun Heo <tj@kernel.org> | 2008-08-25 06:56:17 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2008-10-09 02:56:08 -0400 |
commit | 3e1a7ff8a0a7b948f2684930166954f9e8e776fe (patch) | |
tree | 0a8642f5cdbc6ddfdd66dc7241c915e57b3cb7ff /include/linux/genhd.h | |
parent | 689d6fac40b41c7bf154f362deaf442548e4dc81 (diff) |
block: allow disk to have extended device number
Now that disk and partition handlings are mostly unified, it's easy to
allow disk to have extended device number. This patch makes
add_disk() use extended device number if disk->minors is zero. Both
sd and ide-disk are updated to use this.
* sd_format_disk_name() is implemented which can generically determine
the drive name. This removes disk number restriction stemming from
limited device names.
* If sd index goes over SD_MAX_DISKS (which can be increased now BTW),
sd simply doesn't initialize minors letting block layer choose
extended device number.
* If CONFIG_DEBUG_EXT_DEVT is set, both sd and ide-disk always set
minors to 0 and use extended device numbers.
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'include/linux/genhd.h')
-rw-r--r-- | include/linux/genhd.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 04524c213de1..206cdf96c3a7 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h | |||
@@ -59,6 +59,7 @@ enum { | |||
59 | }; | 59 | }; |
60 | 60 | ||
61 | #define DISK_MAX_PARTS 256 | 61 | #define DISK_MAX_PARTS 256 |
62 | #define DISK_NAME_LEN 32 | ||
62 | 63 | ||
63 | #include <linux/major.h> | 64 | #include <linux/major.h> |
64 | #include <linux/device.h> | 65 | #include <linux/device.h> |
@@ -140,7 +141,7 @@ struct gendisk { | |||
140 | int minors; /* maximum number of minors, =1 for | 141 | int minors; /* maximum number of minors, =1 for |
141 | * disks that can't be partitioned. */ | 142 | * disks that can't be partitioned. */ |
142 | 143 | ||
143 | char disk_name[32]; /* name of major driver */ | 144 | char disk_name[DISK_NAME_LEN]; /* name of major driver */ |
144 | 145 | ||
145 | /* Array of pointers to partitions indexed by partno. | 146 | /* Array of pointers to partitions indexed by partno. |
146 | * Protected with matching bdev lock but stat and other | 147 | * Protected with matching bdev lock but stat and other |