aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/genhd.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/genhd.h')
-rw-r--r--include/linux/genhd.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index ecf649c3deed..04524c213de1 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -58,6 +58,8 @@ enum {
58 UNIXWARE_PARTITION = 0x63, /* Same as GNU_HURD and SCO Unix */ 58 UNIXWARE_PARTITION = 0x63, /* Same as GNU_HURD and SCO Unix */
59}; 59};
60 60
61#define DISK_MAX_PARTS 256
62
61#include <linux/major.h> 63#include <linux/major.h>
62#include <linux/device.h> 64#include <linux/device.h>
63#include <linux/smp.h> 65#include <linux/smp.h>
@@ -112,6 +114,7 @@ struct hd_struct {
112#define GENHD_FL_CD 8 114#define GENHD_FL_CD 8
113#define GENHD_FL_UP 16 115#define GENHD_FL_UP 16
114#define GENHD_FL_SUPPRESS_PARTITION_INFO 32 116#define GENHD_FL_SUPPRESS_PARTITION_INFO 32
117#define GENHD_FL_EXT_DEVT 64 /* allow extended devt */
115 118
116#define BLK_SCSI_MAX_CMDS (256) 119#define BLK_SCSI_MAX_CMDS (256)
117#define BLK_SCSI_CMD_PER_LONG (BLK_SCSI_MAX_CMDS / (sizeof(long) * 8)) 120#define BLK_SCSI_CMD_PER_LONG (BLK_SCSI_MAX_CMDS / (sizeof(long) * 8))
@@ -129,15 +132,13 @@ struct disk_part_tbl {
129}; 132};
130 133
131struct gendisk { 134struct gendisk {
132 /* major, first_minor, minors and ext_minors are input 135 /* major, first_minor and minors are input parameters only,
133 * parameters only, don't use directly. Use disk_devt() and 136 * don't use directly. Use disk_devt() and disk_max_parts().
134 * disk_max_parts().
135 */ 137 */
136 int major; /* major number of driver */ 138 int major; /* major number of driver */
137 int first_minor; 139 int first_minor;
138 int minors; /* maximum number of minors, =1 for 140 int minors; /* maximum number of minors, =1 for
139 * disks that can't be partitioned. */ 141 * disks that can't be partitioned. */
140 int ext_minors; /* number of extended dynamic minors */
141 142
142 char disk_name[32]; /* name of major driver */ 143 char disk_name[32]; /* name of major driver */
143 144
@@ -180,7 +181,9 @@ static inline struct gendisk *part_to_disk(struct hd_struct *part)
180 181
181static inline int disk_max_parts(struct gendisk *disk) 182static inline int disk_max_parts(struct gendisk *disk)
182{ 183{
183 return disk->minors + disk->ext_minors; 184 if (disk->flags & GENHD_FL_EXT_DEVT)
185 return DISK_MAX_PARTS;
186 return disk->minors;
184} 187}
185 188
186static inline bool disk_partitionable(struct gendisk *disk) 189static inline bool disk_partitionable(struct gendisk *disk)
@@ -527,9 +530,6 @@ extern void printk_all_partitions(void);
527 530
528extern struct gendisk *alloc_disk_node(int minors, int node_id); 531extern struct gendisk *alloc_disk_node(int minors, int node_id);
529extern struct gendisk *alloc_disk(int minors); 532extern struct gendisk *alloc_disk(int minors);
530extern struct gendisk *alloc_disk_ext_node(int minors, int ext_minrs,
531 int node_id);
532extern struct gendisk *alloc_disk_ext(int minors, int ext_minors);
533extern struct kobject *get_disk(struct gendisk *disk); 533extern struct kobject *get_disk(struct gendisk *disk);
534extern void put_disk(struct gendisk *disk); 534extern void put_disk(struct gendisk *disk);
535extern void blk_register_region(dev_t devt, unsigned long range, 535extern void blk_register_region(dev_t devt, unsigned long range,