Skip to content
  • Sage Weil's avatar
    ceph: queue cap_snaps once per realm · e8e1ba96
    Sage Weil authored
    
    
    We were forming a dirty list, and then queueing cap_snaps for each realm
    _and_ its children, regardless of whether the children were already in the
    dirty list.  This meant we did it twice for some realms.  Which in turn
    meant we corrupted mdsc->snap_flush_list when the cap_snap was re-added to
    the list it was already on, and could trigger an infinite loop.
    
    We were also using recursion to do reach all the children, a no-no when
    stack is limited.
    
    Instead, (re)queue any children on the dirty list, avoiding processing
    anything twice and avoiding any recursion.
    
    Signed-off-by: default avatarSage Weil <sage@newdream.net>
    e8e1ba96