>
> On Tue, 1 Oct 2002, Christoph Hellwig wrote:
> >
> > What about the 64bit sector_t (aka >2TB blockdevice) patches.
>
> I think we should do both 64-bit sector_t and 32-bit dev_t, although both
> of them depend on how horrible the code ends up being. Example patches?
Umm... Speaking of 32bit dev_t, I'd rather do it right way. We _do_ have
a very real chance to kill all per-major arrays in a couple of weeks.
Both for block and character devices.
Basically, we can get rid of the notions of major and minor. With the stuff
already in place we can easily do CIDR equivalent - I have such patches and
they work nicely. Probable sequence:
* switch to dynamic allocation of gendisks (large part will go
in a couple of hours, the rest - later tonight).
* refcounting for gendisks [~3Kb patch]
* caching of pointer to gendisk in bdev->bd_disk
* killing majority of get_gendisk() calls [~20Kb]
* introduction of blk_register_area() and removal of kludge in genhd.c;
switching blk_set_probe() users to final mechanism ([~15Kb patch])
* using it to deal with remaining deadlocks in modular ide, etc.
* addition of gendisk->queue poitner, setting it for all gendisks.
* defining QUEUE to local variable in all drivers that still use it.
* killing blk_dev[] array.
* switching set_device_ro() to gendisk *.
* moving read-only/read-write state into gendisk.
* killing the last remaining array.
At that point block devices are OK. Moreover, blk_register_area() can be
easily abstracted into mechanism common for block and character devices,
but in any case character devices are much easier...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/