← Back to team overview

kernel-packages team mailing list archive

[Bug 1434223] [NEW] btrfs: regression in 3.16 with renaming of directory in between two snapshots

 

Public bug reported:

SRU Justification: (Utopic)

[Impact]
If between two snapshots we rename an existing directory named X to Y and
make it a child (direct or not) of a new inode named X, we were delaying
the move/rename of the former directory unnecessarily, which would result
in attempting to rename the new directory from its orphan name to name X
prematurely.

[Fix]
upstream commit bf8e8ca6fd4ac6e8edc58b92cffb2ffd51933138
"Btrfs: send, don't delay dir move if there's a new parent inode"

this is a simple one-liner, risk is low to zero.

[Testcase]
As from the commit:

        $ mkfs.btrfs -f /dev/vdd
        $ mount /dev/vdd /mnt
        $ mkdir -p /mnt/merlin/RC/OSD/Source
    
        $ btrfs subvolume snapshot -r /mnt /mnt/mysnap1
    
        $ mkdir /mnt/OSD
        $ mv /mnt/merlin/RC/OSD /mnt/OSD/OSD-Plane_788
        $ mv /mnt/OSD /mnt/merlin/RC
    
        $ btrfs subvolume snapshot -r /mnt /mnt/mysnap2
    
        $ btrfs send /mnt/mysnap1 -f /tmp/1.snap
        $ btrfs send -p /mnt/mysnap1 /mnt/mysnap2 -f /tmp/2.snap
    
        $ mkfs.btrfs -f /dev/vdc
        $ mount /dev/vdc /mnt2
    
        $ btrfs receive /mnt2 -f /tmp/1.snap
        $ btrfs receive /mnt2 -f /tmp/2.snap
    
    The second receive (from an incremental send) failed with the following
    error message: "rename o261-7-0 -> merlin/RC/OSD failed".
    This is a regression introduced in the 3.16 kernel.

** Affects: linux (Ubuntu)
     Importance: Low
     Assignee: Colin Ian King (colin-king)
         Status: In Progress

** Changed in: linux (Ubuntu)
   Importance: Undecided => Low

** Changed in: linux (Ubuntu)
       Status: New => In Progress

** Changed in: linux (Ubuntu)
     Assignee: (unassigned) => Colin Ian King (colin-king)

-- 
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/1434223

Title:
  btrfs: regression in 3.16 with renaming of directory in between two
  snapshots

Status in linux package in Ubuntu:
  In Progress

Bug description:
  SRU Justification: (Utopic)

  [Impact]
  If between two snapshots we rename an existing directory named X to Y and
  make it a child (direct or not) of a new inode named X, we were delaying
  the move/rename of the former directory unnecessarily, which would result
  in attempting to rename the new directory from its orphan name to name X
  prematurely.

  [Fix]
  upstream commit bf8e8ca6fd4ac6e8edc58b92cffb2ffd51933138
  "Btrfs: send, don't delay dir move if there's a new parent inode"

  this is a simple one-liner, risk is low to zero.

  [Testcase]
  As from the commit:

          $ mkfs.btrfs -f /dev/vdd
          $ mount /dev/vdd /mnt
          $ mkdir -p /mnt/merlin/RC/OSD/Source
      
          $ btrfs subvolume snapshot -r /mnt /mnt/mysnap1
      
          $ mkdir /mnt/OSD
          $ mv /mnt/merlin/RC/OSD /mnt/OSD/OSD-Plane_788
          $ mv /mnt/OSD /mnt/merlin/RC
      
          $ btrfs subvolume snapshot -r /mnt /mnt/mysnap2
      
          $ btrfs send /mnt/mysnap1 -f /tmp/1.snap
          $ btrfs send -p /mnt/mysnap1 /mnt/mysnap2 -f /tmp/2.snap
      
          $ mkfs.btrfs -f /dev/vdc
          $ mount /dev/vdc /mnt2
      
          $ btrfs receive /mnt2 -f /tmp/1.snap
          $ btrfs receive /mnt2 -f /tmp/2.snap
      
      The second receive (from an incremental send) failed with the following
      error message: "rename o261-7-0 -> merlin/RC/OSD failed".
      This is a regression introduced in the 3.16 kernel.

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


Follow ups

References