• Kent Overstreet's avatar
    bcache: Fix a race when freeing btree nodes · 05335cff
    Kent Overstreet authored
    This isn't a bulletproof fix; btree_node_free() -> bch_bucket_free() puts the
    bucket on the unused freelist, where it can be reused right away without any
    ordering requirements. It would be better to wait on at least a journal write to
    go down before reusing the bucket. bch_btree_set_root() does this, and inserting
    into non leaf nodes is completely synchronous so we should be ok, but future
    patches are just going to get rid of the unused freelist - it was needed in the
    past for various reasons but shouldn't be anymore.
    Signed-off-by: default avatarKent Overstreet <kmo@daterainc.com>
    05335cff
btree.c 53.4 KB