• Chris Mason's avatar
    Btrfs: make sure btrfs_update_delayed_ref doesn't increase ref_mod · 1a81af4d
    Chris Mason authored
    btrfs_update_delayed_ref is optimized to add and remove different
    references in one pass through the delayed ref tree.  It is a zero
    sum on the total number of refs on a given extent.
    
    But, the code was recording an extra ref in the head node.  This
    never made it down to the disk but was used when deciding if it was
    safe to free the extent while dropping snapshots.
    
    The fix used here is to make sure the ref_mod count is unchanged
    on the head ref when btrfs_update_delayed_ref is called.
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    1a81af4d
delayed-ref.c 18.2 KB