Skip to content
  • Hanna Reitz's avatar
    3cf746b3
    block: Deep-clear inherits_from · 3cf746b3
    Hanna Reitz authored
    
    
    BDS.inherits_from does not always point to an immediate parent node.
    When launching a block job with a filter node, for example, the node
    directly below the filter will not point to the filter, but keep its old
    pointee (above the filter).
    
    If that pointee goes away while the job is still running, the node's
    inherits_from will not be updated and thus point to garbage.  To fix
    this, bdrv_unref_child() has to check not only the parent node's
    immediate children for nodes whose inherits_from needs to be cleared,
    but its whole subtree.
    
    Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
    Message-id: 20190703172813.6868-7-mreitz@redhat.com
    Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
    3cf746b3
    block: Deep-clear inherits_from
    Hanna Reitz authored
    
    
    BDS.inherits_from does not always point to an immediate parent node.
    When launching a block job with a filter node, for example, the node
    directly below the filter will not point to the filter, but keep its old
    pointee (above the filter).
    
    If that pointee goes away while the job is still running, the node's
    inherits_from will not be updated and thus point to garbage.  To fix
    this, bdrv_unref_child() has to check not only the parent node's
    immediate children for nodes whose inherits_from needs to be cleared,
    but its whole subtree.
    
    Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
    Message-id: 20190703172813.6868-7-mreitz@redhat.com
    Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
Loading