← Back to team overview

kernel-packages team mailing list archive

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

 

This bug is awaiting verification that the kernel in -proposed solves
the problem. Please test the kernel and update this bug with the
results. If the problem is solved, change the tag 'verification-needed-
utopic' to 'verification-done-utopic'.

If verification is not done by 5 working days from today, this fix will
be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how
to enable and use -proposed. Thank you!


** Tags added: verification-needed-utopic

-- 
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
Status in linux source package in Utopic:
  Fix Committed

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


References