[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 74/78] block: merge struct block_device and struct hd_struct



On 11/16/20 3:58 PM, Christoph Hellwig wrote:
Instead of having two structures that represent each block device with
different lift time rules merged them into a single one.  This also
greatly simplifies the reference counting rules, as we can use the inode
reference count as the main reference count for the new struct
block_device, with the device model reference front ending it for device
model interaction.  The percpu refcount in struct hd_struct is entirely
gone given that struct block_device must be opened and thus valid for
the duration of the I/O.

Signed-off-by: Christoph Hellwig <hch@xxxxxx>
---
  block/bio.c                        |   6 +-
  block/blk-cgroup.c                 |   9 +-
  block/blk-core.c                   |  85 +++++-----
  block/blk-flush.c                  |   2 +-
  block/blk-lib.c                    |   2 +-
  block/blk-merge.c                  |   6 +-
  block/blk-mq.c                     |  11 +-
  block/blk-mq.h                     |   5 +-
  block/blk.h                        |  38 ++---
  block/genhd.c                      | 242 +++++++++++------------------
  block/ioctl.c                      |   4 +-
  block/partitions/core.c            | 221 +++++++-------------------
  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                    |   8 +-
  drivers/md/md.c                    |   4 +-
  drivers/nvme/target/admin-cmd.c    |  20 +--
  drivers/s390/block/dasd.c          |   8 +-
  fs/block_dev.c                     |  68 +++-----
  fs/ext4/super.c                    |  18 +--
  fs/ext4/sysfs.c                    |  10 +-
  fs/f2fs/checkpoint.c               |   5 +-
  fs/f2fs/f2fs.h                     |   2 +-
  fs/f2fs/super.c                    |   6 +-
  fs/f2fs/sysfs.c                    |   9 --
  include/linux/blk_types.h          |  23 ++-
  include/linux/blkdev.h             |  13 +-
  include/linux/genhd.h              |  67 ++------
  include/linux/part_stat.h          |  17 +-
  init/do_mounts.c                   |  20 +--
  kernel/trace/blktrace.c            |  54 ++-----
  33 files changed, 351 insertions(+), 642 deletions(-)

Reviewed-by: Hannes Reinecke <hare@xxxxxxx>

Cheers,

Hannes
--
Dr. Hannes Reinecke                Kernel Storage Architect
hare@xxxxxxx                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.