Hi Jens, this series cleans up our main per-device node data structure by merging the block_device and hd_struct data structures that have the same scope, but different life times. The main effect (besides removing lots of code) is that instead of having two device sizes that need complex synchronization there is just one now. Note that this now includes the previous "misc cleanups" series as I had to fix up a thing in there with the changed patch ordering. The first patch already is in 5.10-rc, but not in for-5.11/block A git tree is available here: git://git.infradead.org/users/hch/block.git bdev-lookup Gitweb: http://git.infradead.org/users/hch/block.git/shortlog/refs/heads/bdev-lookup Changes since v3: - extend hold time of bdev_lookup_sem - use igrab bdget to make bdget_disk and disk_part_iter* safe - fix some error handling labels - remove a superflous cast - various comment fixups Changes since v2: - keep a reference to the whole device bdev from each partition bdev to simplify blkdev_get - drop a stale commen in freeze_bdev - fix an incorrect hunk that ignored error in thaw_bdev - add back a missing call to mapping_set_gfp_mask - misc typo fixes, comment and commit log improvements - keep using a global lock to synchronize gendisk lookup - do not call ->open for blk-cgroup configuration updates - drop a zram cleanup patch Changes since v1: - spelling fixes - fix error unwinding in __alloc_disk_node - use bdev_is_partition in a few more places - don't send the RESIZE=1 uevent for hidden gendisks - rename __bdget_disk to disk_find_part - drop a bcache patch - some patch reordering - add more refactoring - use rcu protection to prevent racing with a disk going away in blkdev_get - split up some of the big patches into many small ones - clean up the freeze_bdev interface