• J
    Btrfs: use received_uuid of parent during send · 37b8d27d
    Josef Bacik 提交于
    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: NNeil Horman <nhorman@redhat.com>
    Signed-off-by: NJosef Bacik <jbacik@fb.com>
    Reviewed-by: NHugo Mills <hugo@carfax.org.uk>
    Signed-off-by: NChris Mason <clm@fb.com>
    37b8d27d
send.c 141.1 KB