diff options
author | Jens Axboe <axboe@kernel.dk> | 2023-04-14 07:32:02 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2023-04-16 13:01:42 -0600 |
commit | 9f4107b07b17b5ee68af680150f91227bea2df6f (patch) | |
tree | 54f7074442e4411c2770e09724b288422b95d2e6 /block/genhd.c | |
parent | 3838c406a594f15600ad6f83c1e3b16bfd1829d0 (diff) |
block: store bdev->bd_disk->fops->submit_bio state in bdev
We have a long chain of memory dereferencing just to whether or not
this disk has a special submit_bio helper. As that's not necessarily
the common case, add a bd_has_submit_bio state in the bdev to avoid
traversing this memory dependency chain if we don't need to.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/genhd.c')
-rw-r--r-- | block/genhd.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/block/genhd.c b/block/genhd.c index 02d9cfb9e077..cadcb472dfc3 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -420,6 +420,9 @@ int __must_check device_add_disk(struct device *parent, struct gendisk *disk, */ elevator_init_mq(disk->queue); + /* Mark bdev as having a submit_bio, if needed */ + disk->part0->bd_has_submit_bio = disk->fops->submit_bio != NULL; + /* * If the driver provides an explicit major number it also must provide * the number of minors numbers supported, and those will be used to |