• Josef Bacik's avatar
    Btrfs: use received_uuid of parent during send · 37b8d27d
    Josef Bacik authored
    Neil Horman pointed out a problem where if he did something like this
    
    receive A
    snap A B
    change B
    send -p A B
    
    and then on another box do
    
    recieve A
    receive B
    
    the receive B would fail because we use the UUID of A for the clone sources for
    B.  This makes sense most of the time because normally you are sending from the
    original sources, not a received source.  However when you use a recieved subvol
    its UUID is going to be something completely different, so if you then try to
    receive the diff on a different volume it won't find the UUID because the new A
    will be something else.  The only constant is the received uuid.  So instead
    check to see if we have received_uuid set on the root, and if so use that as the
    clone source, as btrfs receive looks for matches either in received_uuid or
    uuid.  Thanks,
    Reported-by: default avatarNeil Horman <nhorman@redhat.com>
    Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
    Reviewed-by: default avatarHugo Mills <hugo@carfax.org.uk>
    Signed-off-by: default avatarChris Mason <clm@fb.com>
    37b8d27d
send.c 141 KB