Hi Christopher,

I have written up a SRU template and submitted the revert to the Ubuntu
Kernel Team mailing list:

Cover letter:
https://lists.ubuntu.com/archives/kernel-team/2025-May/159630.html
Patch:
https://lists.ubuntu.com/archives/kernel-team/2025-May/159631.html

The next step is for the Kernel Team to review the patch, and we need 2x
acks from Senior Kernel Team members to get approved for the next SRU
cycle.

I'll keep an eye out and let you know as things move forward.

Thanks,
Matthew

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/2107516

Title:
  Mounting btrfs LVM volumes changes mountpoint location and breaks
  lsblk output

Status in linux package in Ubuntu:
  Invalid
Status in linux source package in Jammy:
  In Progress

Bug description:
  BugLink: https://bugs.launchpad.net/bugs/2107516

  [Impact]

  Since 5.15.0-136-generic, mounting btrfs LVM volumes changes behaviour in two
  subtle ways.

  The first, changes the mountpoint from

  /dev/mapper/VG0-LV0

  to

  /dev/VG0/LV0

  breaking any existing applications which rely on the volume being accessible 
at
  /dev/mapper.

  The second, breaks lsblk displaying volume mountpoints when the volume is
  mounted in duplicated places, e.g.:

  sdb            8:16   0   9,1T  0 disk
  └─sdb1         8:17   0   9,1T  0 part
    └─hdd2     254:6    0   9,1T  0 crypt /mnt/hdd2
                                      /var/cache/distfiles
                                      /var/cache/binpkgs

  becomes

  sdb            8:16   0   9,1T  0 disk
  └─sdb1         8:17   0   9,1T  0 part
    └─hdd2     254:6    0   9,1T  0 crypt /mnt/hdd2

  Only the first mountpoint is now displayed, where previously it would show
  all of them.

  [Fix]

  The issue has been debugged in gentoo with the original patch author:

  https://bugs.gentoo.org/947126

  The findings were that the patch:

  commit fc83c00ca63bc3a29778957170ccb96fabccf44c
  Author: Qu Wenruo <w...@suse.com>
  Date: Tue Sep 24 12:52:17 2024 +0930
  Subject: btrfs: avoid unnecessary device path update for the same device
  Link: 
https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy/commit/?id=fc83c00ca63bc3a29778957170ccb96fabccf44c

  relies on the recent migration of btrfs to the new fsconfig mount API, 
available
  in 6.8 onwards.

  The author tried to fix things up further, but only introduced more 
regressions,
  leading to the conclusion that this patch needs to be reverted for 5.15.

  Hence, submitting a SAUCE patch to revert.

  [Testcase]

  Create a fresh VM, and attach a scratch disk to be used as a btrfs
  volume.

  $ uname -rv
  5.15.0-127-generic #137-Ubuntu SMP Fri Nov 8 15:21:01 UTC 2024
  $ lsblk
  NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
  vda 252:0 0 10G 0 disk
  ├─vda1 252:1 0 9.9G 0 part /
  ├─vda14 252:14 0 4M 0 part
  └─vda15 252:15 0 106M 0 part /boot/efi
  vdb 252:16 0 372K 0 disk
  vdc 252:32 0 5G 0 disk

  $ sudo pvcreate /dev/vdc
    Physical volume "/dev/vdc" successfully created.
  $ sudo vgcreate VG0 /dev/vdc
    Volume group "VG0" successfully created
  $ sudo lvcreate -n LV0 -l 100%FREE VG0
    Logical volume "LV0" created.
  $ sudo mkfs.btrfs /dev/dm-0

  $ sudo mkdir /mnt/a
  $ sudo mkdir /mnt/b
  $ sudo mkdir /mnt/c
  $ sudo mount /dev/dm-0/mnt/a
  $ sudo mount /dev/dm-0/mnt/b
  $ sudo mount /dev/dm-0/mnt/c
  $ lsblk
  NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
  vda 252:0 0 10G 0 disk
  ├─vda1 252:1 0 9.9G 0 part /
  ├─vda14 252:14 0 4M 0 part
  └─vda15 252:15 0 106M 0 part /boot/efi
  vdb 252:16 0 372K 0 disk
  vdc 252:32 0 5G 0 disk
  └─VG0-LV0 253:0 0 5G 0 lvm /mnt/c
                             /mnt/b
                             /mnt/a
  $ grep /mnt /proc/mounts
  /dev/mapper/VG0-LV0 /mnt/a btrfs 
rw,relatime,space_cache=v2,subvolid=5,subvol=/ 0 0
  /dev/mapper/VG0-LV0 /mnt/b btrfs 
rw,relatime,space_cache=v2,subvolid=5,subvol=/ 0 0
  /dev/mapper/VG0-LV0 /mnt/c btrfs 
rw,relatime,space_cache=v2,subvolid=5,subvol=/ 0 0

  $ sudo apt install linux-image-5.15.0-136-generic linux-
  modules-5.15.0-136-generic linux-modules-extra-5.15.0-136-generic
  linux-headers-5.15.0-136-generic

  $ uname -rv
  5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025
  $ ls /mnt
  a b c
  $ sudo mount /dev/dm-0/mnt/a
  $ sudo mount /dev/dm-0/mnt/b
  $ sudo mount /dev/dm-0/mnt/c
  $ lsblk
  NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
  vda 252:0 0 10G 0 disk
  ├─vda1 252:1 0 9.9G 0 part /
  ├─vda14 252:14 0 4M 0 part
  └─vda15 252:15 0 106M 0 part /boot/efi
  vdb 252:16 0 372K 0 disk
  vdc 252:32 0 5G 0 disk
  └─VG0-LV0 253:0 0 5G 0 lvm /mnt/c
  $ grep /mnt /proc/mounts
  /dev/mapper/VG0-LV0 /mnt/a btrfs 
rw,relatime,space_cache=v2,subvolid=5,subvol=/ 0 0
  /dev/mapper/VG0-LV0 /mnt/b btrfs 
rw,relatime,space_cache=v2,subvolid=5,subvol=/ 0 0
  /dev/mapper/VG0-LV0 /mnt/c btrfs 
rw,relatime,space_cache=v2,subvolid=5,subvol=/ 0 0
  $ sudo touch /dev/mapper/VG0-LV0
  $ grep /mnt /proc/mounts
  /dev/VG0/LV0 /mnt/a btrfs rw,relatime,space_cache=v2,subvolid=5,subvol=/ 0 0
  /dev/VG0/LV0 /mnt/b btrfs rw,relatime,space_cache=v2,subvolid=5,subvol=/ 0 0
  /dev/VG0/LV0 /mnt/c btrfs rw,relatime,space_cache=v2,subvolid=5,subvol=/ 0 0

  [Where problems could occur]

  We are changing how we check if devices are the same, and what happens if they
  are. The original motivation behind the patch was to try avoid updating the
  device paths on rescan from udev, but there is no evidence that this is even
  a problem on 5.15, and the regressions from having the path names completely
  changed and lsblk missing mountpoints outweighs any benefit of perceived
  reductions in path updates on udev rescan.

  We will go back to the original behaviour in 5.15.0-134-generic and earlier,
  to keep things stable as they have been over jammy's lifecycle.

  If a regression were to occur, it would affect btrfs mountpoints, and output
  from lsblk showing duplicated mountpoints.

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


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to