On 11/24/20 9:27 PM, Christoph Hellwig wrote: > Use struct block_device to lookup partitions on a disk. This removes > all usage of struct hd_struct from the I/O path, and this allows removing > the percpu refcount in struct hd_struct. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> For the bcache part, Acked-by: Coly Li <colyli@xxxxxxx> > --- > block/bio.c | 4 +- > block/blk-core.c | 66 ++++++++++++++---------------- > block/blk-flush.c | 2 +- > block/blk-mq.c | 9 ++-- > block/blk-mq.h | 7 ++-- > block/blk.h | 4 +- > block/genhd.c | 56 +++++++++++++------------ > block/partitions/core.c | 7 +--- > drivers/block/drbd/drbd_receiver.c | 2 +- > drivers/block/drbd/drbd_worker.c | 2 +- > drivers/block/zram/zram_drv.c | 2 +- > drivers/md/bcache/request.c | 4 +- > drivers/md/dm.c | 4 +- > drivers/md/md.c | 4 +- > drivers/nvme/target/admin-cmd.c | 20 ++++----- > fs/ext4/super.c | 18 +++----- > fs/ext4/sysfs.c | 10 +---- > fs/f2fs/f2fs.h | 2 +- > fs/f2fs/super.c | 6 +-- > include/linux/blkdev.h | 8 ++-- > include/linux/genhd.h | 4 +- > include/linux/part_stat.h | 17 ++++---- > 22 files changed, 120 insertions(+), 138 deletions(-) [snipped] > diff --git a/drivers/md/bcache/request.c b/drivers/md/bcache/request.c > index afac8d07c1bd00..85b1f2a9b72d68 100644 > --- a/drivers/md/bcache/request.c > +++ b/drivers/md/bcache/request.c > @@ -475,7 +475,7 @@ struct search { > unsigned int read_dirty_data:1; > unsigned int cache_missed:1; > > - struct hd_struct *part; > + struct block_device *part; > unsigned long start_time; > > struct btree_op op; > @@ -1073,7 +1073,7 @@ struct detached_dev_io_private { > unsigned long start_time; > bio_end_io_t *bi_end_io; > void *bi_private; > - struct hd_struct *part; > + struct block_device *part; > }; [snipped]