There we go - now we can put a reference to gendisk into block_device. Which
we do in do_open(). Most of the callers of get_gendisk() are simply using
bdev->bd_disk now (and most of the put_disk() calls introduced on previous
step disappear). We also put that pointer into struct request - ->rq_disk.
That allows to get rid of disk_index() kludges in md.c (we simply count
relevant IO in the struct gendisk fields) and kill the export of get_gendisk().
Notice that by now we can move _all_ IO counters into gendisk. That
will kill a bunch of per-major arrays and more importantly, allow to merge
sard in clean way. FWIW, we probably could show them as disk/partitions
attributes in driverfs...