On Thu, Dec 03, 2020 at 03:10:55PM +0800, Ming Lei wrote: > On Thu, Dec 03, 2020 at 02:40:04PM +0800, Ming Lei wrote: > > On Tue, Dec 01, 2020 at 05:54:18PM +0100, Christoph Hellwig wrote: > > > Replace the gendisk pointer in struct bio with a pointer to the newly > > > improved struct block device. From that the gendisk can be trivially > > > accessed with an extra indirection, but it also allows to directly > > > look up all information related to partition remapping. > > > > The extra indirection is often done in fast path, so just wondering why > > you don't consider to embed gendisk into block_device? Then the extra > > indirection can be avoided. > > oops, that is only possible for disk, and indirection is still needed > for partitions. I looked into that, but given that the block device is allocated as part of the inode we'd need to tell ->alloc_inode if we want to allocate the small inode without the gendisk, or the large one with it which doesn't work with the current interface. Beause the hd_struct is gone we're still not using more structures in the I/O path than we did before.