I reviewed this once again:

1. persistent /dev/bcache<i> - not possible or needed due to how kernel 
enumeration works
2. our userspace handles /dev/by-dname/<symlink> properly so we just need 
CACHED_UUID given to us during coldplug in some way to properly create 
/dev/bcache/by-uuid/<link> symlinks and consequently by-dname symlinks. 

3. bcache, like almost all block device drivers, gets "struct
device_type disk_type" by using alloc_disk from genhd.c which gives us
standard contents for the uevent file. Partitions are a notable
exception and use "struct device_type part_type" which has a .uevent
field (http://elixir.free-electrons.com/linux/v4.14.2/source/block
/partition-generic.c#L223) that allows customization of uevent file
contents in a bus-, class- and type-specific manner (http://elixir.free-
electrons.com/linux/v4.14.2/source/drivers/base/core.c#L903).

cat /sys/class/block/nvme0n1/uevent                  
MAJOR=259
MINOR=0
DEVNAME=nvme0n1
DEVTYPE=disk


as opposed to the following with partitions

cat /sys/class/block/nvme0n1p1/uevent 
MAJOR=259
MINOR=1
DEVNAME=nvme0n1p1
DEVTYPE=partition
PARTN=1
PARTNAME=Basic data partition


While we could have a new block device type of "bcache" with a custom uevent 
content that had CACHED_UUID of a superblock this would be a userspace breakage 
which is hardly upstreamable.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1729145

Title:
  /dev/bcache/by-uuid links not created after reboot

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1729145/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to