diff options
author | Tejun Heo <tj@kernel.org> | 2008-08-25 06:56:16 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2008-10-09 02:56:08 -0400 |
commit | 689d6fac40b41c7bf154f362deaf442548e4dc81 (patch) | |
tree | 5989dc5767f657272194ee8c7d69c6db1e62dab7 /drivers/scsi/sd.c | |
parent | 540eed5637b766bb1e881ef744c42617760b4815 (diff) |
block: replace @ext_minors with GENHD_FL_EXT_DEVT
With previous changes, it's meaningless to limit the number of
partitions. Replace @ext_minors with GENHD_FL_EXT_DEVT such that
setting the flag allows the disk to have maximum number of allowed
partitions (only limited by the number of entries in parsed_partitions
as determined by MAX_PART constant).
This kills not-too-pretty alloc_disk_ext[_node]() functions and makes
@minors parameter to alloc_disk[_node]() unnecessary. The parameter
is left alone to avoid disturbing the users.
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'drivers/scsi/sd.c')
-rw-r--r-- | drivers/scsi/sd.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 280d231a86ed..6598024531dd 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c | |||
@@ -86,16 +86,12 @@ MODULE_ALIAS_SCSI_DEVICE(TYPE_DISK); | |||
86 | MODULE_ALIAS_SCSI_DEVICE(TYPE_MOD); | 86 | MODULE_ALIAS_SCSI_DEVICE(TYPE_MOD); |
87 | MODULE_ALIAS_SCSI_DEVICE(TYPE_RBC); | 87 | MODULE_ALIAS_SCSI_DEVICE(TYPE_RBC); |
88 | 88 | ||
89 | #define SD_PARTS 64 | ||
90 | |||
91 | #if !defined(CONFIG_DEBUG_BLOCK_EXT_DEVT) | 89 | #if !defined(CONFIG_DEBUG_BLOCK_EXT_DEVT) |
92 | #define SD_MINORS 16 | 90 | #define SD_MINORS 16 |
93 | #else | 91 | #else |
94 | #define SD_MINORS 1 | 92 | #define SD_MINORS 1 |
95 | #endif | 93 | #endif |
96 | 94 | ||
97 | #define SD_EXT_MINORS (SD_PARTS - SD_MINORS) | ||
98 | |||
99 | static int sd_revalidate_disk(struct gendisk *); | 95 | static int sd_revalidate_disk(struct gendisk *); |
100 | static int sd_probe(struct device *); | 96 | static int sd_probe(struct device *); |
101 | static int sd_remove(struct device *); | 97 | static int sd_remove(struct device *); |
@@ -1811,7 +1807,7 @@ static int sd_probe(struct device *dev) | |||
1811 | if (!sdkp) | 1807 | if (!sdkp) |
1812 | goto out; | 1808 | goto out; |
1813 | 1809 | ||
1814 | gd = alloc_disk_ext(SD_MINORS, SD_EXT_MINORS); | 1810 | gd = alloc_disk(SD_MINORS); |
1815 | if (!gd) | 1811 | if (!gd) |
1816 | goto out_free; | 1812 | goto out_free; |
1817 | 1813 | ||
@@ -1856,7 +1852,6 @@ static int sd_probe(struct device *dev) | |||
1856 | gd->major = sd_major((index & 0xf0) >> 4); | 1852 | gd->major = sd_major((index & 0xf0) >> 4); |
1857 | gd->first_minor = ((index & 0xf) << 4) | (index & 0xfff00); | 1853 | gd->first_minor = ((index & 0xf) << 4) | (index & 0xfff00); |
1858 | gd->minors = SD_MINORS; | 1854 | gd->minors = SD_MINORS; |
1859 | gd->ext_minors = SD_EXT_MINORS; | ||
1860 | gd->fops = &sd_fops; | 1855 | gd->fops = &sd_fops; |
1861 | 1856 | ||
1862 | if (index < 26) { | 1857 | if (index < 26) { |
@@ -1880,7 +1875,7 @@ static int sd_probe(struct device *dev) | |||
1880 | blk_queue_prep_rq(sdp->request_queue, sd_prep_fn); | 1875 | blk_queue_prep_rq(sdp->request_queue, sd_prep_fn); |
1881 | 1876 | ||
1882 | gd->driverfs_dev = &sdp->sdev_gendev; | 1877 | gd->driverfs_dev = &sdp->sdev_gendev; |
1883 | gd->flags = GENHD_FL_DRIVERFS; | 1878 | gd->flags = GENHD_FL_EXT_DEVT | GENHD_FL_DRIVERFS; |
1884 | if (sdp->removable) | 1879 | if (sdp->removable) |
1885 | gd->flags |= GENHD_FL_REMOVABLE; | 1880 | gd->flags |= GENHD_FL_REMOVABLE; |
1886 | 1881 | ||