struct gendisk (declared in <linux/genhd.h>) is the kernel’s representation of an indi-
vidual disk device. In fact, the kernel also uses gendisk structures to represent parti-
tions, but driver authors need not be aware of that. There are several fields in struct
gendisk that must be initialized by a block driver.