block: don't depend on consecutive minor space
authorTejun Heo <tj@kernel.org>
Wed, 3 Sep 2008 07:01:48 +0000 (09:01 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Thu, 9 Oct 2008 06:56:05 +0000 (08:56 +0200)
commitf331c0296f2a9fee0d396a70598b954062603015
treef74c467d58940131d97d90c4ea549843185e6ef0
parentcf771cb5a7b716f3f9e532fd42a1e3a0a75adec5
block: don't depend on consecutive minor space

* Implement disk_devt() and part_devt() and use them to directly
  access devt instead of computing it from ->major and ->first_minor.

  Note that all references to ->major and ->first_minor outside of
  block layer is used to determine devt of the disk (the part0) and as
  ->major and ->first_minor will continue to represent devt for the
  disk, converting these users aren't strictly necessary.  However,
  convert them for consistency.

* Implement disk_max_parts() to avoid directly deferencing
  genhd->minors.

* Update bdget_disk() such that it doesn't assume consecutive minor
  space.

* Move devt computation from register_disk() to add_disk() and make it
  the only one (all other usages use the initially determined value).

These changes clean up the code and will help disk->part dereference
fix and extended block device numbers.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
16 files changed:
block/genhd.c
block/ioctl.c
drivers/block/pktcdvd.c
drivers/block/ps3disk.c
drivers/char/random.c
drivers/md/dm-ioctl.c
drivers/md/dm-stripe.c
drivers/md/dm.c
drivers/memstick/core/mspro_block.c
drivers/mmc/card/block.c
drivers/s390/block/dasd_proc.c
drivers/s390/block/dcssblk.c
drivers/scsi/sr.c
fs/block_dev.c
fs/partitions/check.c
include/linux/genhd.h