bcache: Fix a race when freeing btree nodes
authorKent Overstreet <kmo@daterainc.com>
Tue, 18 Mar 2014 01:22:34 +0000 (18:22 -0700)
committerKent Overstreet <kmo@daterainc.com>
Tue, 18 Mar 2014 19:23:34 +0000 (12:23 -0700)
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: Kent Overstreet <kmo@daterainc.com>

No differences found