• Filipe David Borba Manana's avatar
    Btrfs: more send support for parent/child dir relationship inversion · 5ed7f9ff
    Filipe David Borba Manana authored
    The commit titled "Btrfs: fix infinite path build loops in incremental send"
    didn't cover a particular case where the parent-child relationship inversion
    of directories doesn't imply a rename of the new parent directory. This was
    due to a simple logic mistake, a logical and instead of a logical or.
    
    Steps to reproduce:
    
      $ mkfs.btrfs -f /dev/sdb3
      $ mount /dev/sdb3 /mnt/btrfs
      $ mkdir -p /mnt/btrfs/a/b/bar1/bar2/bar3/bar4
      $ btrfs subvol snapshot -r /mnt/btrfs /mnt/btrfs/snap1
      $ mv /mnt/btrfs/a/b/bar1/bar2/bar3/bar4 /mnt/btrfs/a/b/k44
      $ mv /mnt/btrfs/a/b/bar1/bar2/bar3 /mnt/btrfs/a/b/k44
      $ mv /mnt/btrfs/a/b/bar1/bar2 /mnt/btrfs/a/b/k44/bar3
      $ mv /mnt/btrfs/a/b/bar1 /mnt/btrfs/a/b/k44/bar3/bar2/k11
      $ btrfs subvol snapshot -r /mnt/btrfs /mnt/btrfs/snap2
      $ btrfs send -p /mnt/btrfs/snap1 /mnt/btrfs/snap2 > /tmp/incremental.send
    
    A patch to update the test btrfs/030 from xfstests, so that it covers
    this case, will be submitted soon.
    Signed-off-by: default avatarFilipe David Borba Manana <fdmanana@gmail.com>
    Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
    5ed7f9ff
send.c 125 KB