block: add a sequence number to disks
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest5 patches 2 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/5 | block: add disk sequence numberblock/ include/ | +21 | 0 replies | |
| 2/5 | block: add ioctl to read the disk sequence numberblock/ include/ | +3 | 0 replies | |
| 3/5 | block: refactor sysfs codeblock/ | +9 | 0 replies | |
| 4/5 | block: export diskseq in sysfsDocumentation/ block/ | +23 | 0 replies | |
| 5/5 | loop: increment sequence numberdrivers/ | +3 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/5] block: add a sequence number to disks
From: Matteo Croce <[email protected]>
With this series a monotonically increasing number is added to disks, precisely in the genhd struct, and it's exported in sysfs and uevent.
This helps the userspace correlate events for devices that reuse the same device, like loop.
The first patch is the core one, the 2..4 expose the information in different ways, while the last one increase the sequence number for loop devices at every attach.
# udevadm monitor -kp |grep -e ^DEVNAME -e ^DISKSEQ &
[1] 523
# losetup -fP 3part
[ 3698.615848] loop0: detected capacity change from 16384 to 0
DEVNAME=/dev/loop0
DISKSEQ=13
[ 3698.647189] loop0: p1 p2 p3
DEVNAME=/dev/loop0
DISKSEQ=13
DEVNAME=/dev/loop0p1
DISKSEQ=13
DEVNAME=/dev/loop0p2
DISKSEQ=13
DEVNAME=/dev/loop0p3
DISKSEQ=13
# losetup -fP 2part
[ 3705.170766] loop1: detected capacity change from 40960 to 0
DEVNAME=/dev/loop1
DISKSEQ=14
[ 3705.247280] loop1: p1 p2
DEVNAME=/dev/loop1
DISKSEQ=14
DEVNAME=/dev/loop1p1
DISKSEQ=14
DEVNAME=/dev/loop1p2
DISKSEQ=14
# ./getdiskseq /dev/loop*
/dev/loop0: 13
/dev/loop0p1: 13
/dev/loop0p2: 13
/dev/loop0p3: 13
/dev/loop1: 14
/dev/loop1p1: 14
/dev/loop1p2: 14
/dev/loop2: 5
/dev/loop3: 6
/dev/loop-control: Function not implemented
# grep . /sys/class/block/*/diskseq
/sys/class/block/loop0/diskseq:13
/sys/class/block/loop1/diskseq:14
/sys/class/block/loop2/diskseq:5
/sys/class/block/loop3/diskseq:6
/sys/class/block/ram0/diskseq:1
/sys/class/block/ram1/diskseq:2
/sys/class/block/vda/diskseq:7If merged, this feature will immediately used by the userspace:
https://github.com/systemd/systemd/issues/17469#issuecomment-762919781
Matteo Croce (5):
block: add disk sequence number
block: add ioctl to read the disk sequence number
block: refactor sysfs code
block: export diskseq in sysfs
loop: increment sequence number
Documentation/ABI/testing/sysfs-block | 12 ++++++++ block/genhd.c | 43 ++++++++++++++++++++++++--- block/ioctl.c | 2 ++ drivers/block/loop.c | 3 ++ include/linux/genhd.h | 2 ++ include/uapi/linux/fs.h | 1 + 6 files changed, 59 insertions(+), 4 deletions(-)
Signature · 1 line
2.29.2