• Josef Bacik's avatar
    Btrfs: only use the existing eb if it's count isn't 0 · 115391d2
    Josef Bacik authored
    We can run into a problem where we find an eb for our existing page already on
    the radix tree but it has a ref count of 0.  It hasn't yet been removed by RCU
    yet so this can cause issues where we will use the EB after free.  So do
    atomic_inc_not_zero on the exists->refs and if it is zero just do
    synchronize_rcu() and try again.  We won't have to worry about new allocators
    coming in since they will block on the page lock at this point.  Thanks,
    Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
    115391d2
extent_io.c 110 KB