Comment 0 for bug 2056143

Revision history for this message
Stefan Bader (smb) wrote :

== SRU Justification ==

-- Impact --
In 22.04/Jammy with the GA 5.15 kernel there was an upstream change preventing partition table operations when GENHD_FL_NO_PART is set.
 1a721de8489f "block: don't add or resize partition on the disk with GENHD_FL_NO_PART"
Beside of changing return codes and breaking some user-space that way this also causes loop block devices to no longer be able to have partitions manually created. This is because the loop block driver uses GENHD_FL_NO_PART to prevent active partition scans.

-- Fix --
This was changed in 5.19 (and thus Mantic is not affected) by introducing a separate flag to prevent those scans:
 b9684a71fca7 "block, loop: support partitions without scanning"
The fix depends on a larger rewrite so it cannot be simply picked. The biggest change from the original is moving the check for the new flag into a helper function in genhd.h which checks whether a disk should be scanned for partitions. That function was dropped with the upstream rewrite and checking moved into the loop driver directly. But it felt like adjusting the helper was the better approach.

-- Testcase --
$ fallocate -l 1G /tmp/blob
$ LOOPDEV=$(sudo losetup --find --show /tmp/blob)
$ sudo /usr/sbin/parted -s -m -a optimal $LOOPDEV -- unit KiB mklabel gpt mkpart primary 0% 100%

-- Regression Potential --
If things go wrong it might be other devices which no longer get scanned automatically or other issues with the loop block driver.