Hi Thomas! > A struct kobject is only supposed to be embedded into objects which > lifetime it will manage. Objects of type struct gendisk however are > refcounted by their part0 block_device. Therefore the integrity_kobj > should not be embedded but split into its own independently managed > object. That's how we originally did it. However, this caused problems for a couple of subsystems, NVMe and DM, if I remember correctly. Managing the lifetime of request_queue vs. gendisk vs. blk_integrity proved to be tricky. Basically at the time things were allocated we didn't yet have all the information required to complete the block device setup. We had to be able to send commands to the drive to finish probing for all the relevant parameters. That dependency was the rationale behind inlining the blk_integrity into gendisk so it was always available. Hazy on the details, this was a long time ago. Another option would be to reshuffle the sysfs bits. The kobj really isn't used for anything else. -- Martin K. Petersen Oracle Linux Engineering