block: implement extended dev numbers
authorTejun Heo <tj@kernel.org>
Mon, 25 Aug 2008 10:47:22 +0000 (19:47 +0900)
committerJens Axboe <jens.axboe@oracle.com>
Thu, 9 Oct 2008 06:56:06 +0000 (08:56 +0200)
commitbcce3de1be61e424deef35d1e86e86a35c4b6e65
treecfdefb52bc37c61dfac160951a9beb86d5cd9ba0
parentc9959059161ddd7bf4670cf47367033d6b2f79c4
block: implement extended dev numbers

Implement extended device numbers.  A block driver can tell block
layer that it wants to use extended device numbers.  After the usual
minor space is used up, block layer automatically allocates devt's
from EXT_BLOCK_MAJOR.

Currently only one major number is allocated for this but as the
allocation is strictly on-demand, ~1mil minor space under it should
suffice unless the system actually has more than ~1mil partitions and
if that ever happens adding more majors to the extended devt area is
easy.

Due to internal implementation issues, the first partition can't be
allocated on the extended area.  In other words, genhd->minors should
at least be 1.  This limitation will be lifted by later changes.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/genhd.c
fs/partitions/check.c
include/linux/genhd.h
include/linux/major.h