• A
    commit: get the overlay node before manipulating the backing chain · 4d6f8cbb
    Alberto Garcia 提交于
    The 'block-commit' command has a 'top' parameter to specify the
    topmost node from which the data is going to be copied.
    
       [E] <- [D] <- [C] <- [B] <- [A]
    
    In this case if [C] is the top node then this is the result:
    
       [E] <- [B] <- [A]
    
    [B] must be modified so its backing image string points to [E] instead
    of [C]. commit_start() takes care of reopening [B] in read-write
    mode, and commit_complete() puts it back in read-only mode once the
    operation has finished.
    
    In order to find [B] (the overlay node) we look for the node that has
    [C] (the top node) as its backing image. However in commit_complete()
    we're doing it after [C] has been removed from the chain, so [B] is
    never found and remains in read-write mode.
    
    This patch gets the overlay node before the backing chain is
    manipulated.
    Signed-off-by: NAlberto Garcia <berto@igalia.com>
    Message-id: 1471836963-28548-1-git-send-email-berto@igalia.com
    Signed-off-by: NMax Reitz <mreitz@redhat.com>
    4d6f8cbb
commit.c 10.8 KB