diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2020-11-13 14:41:06 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2020-11-16 18:23:54 -0500 |
commit | 13f53aa228c83731226f4a359983215f1f7c2a47 (patch) | |
tree | f13df1911f064fe507afbd2420d49be797904e63 /libbcachefs/btree_cache.c | |
parent | 3420d86959401e5884627efdf3c2361e50b05eaa (diff) |
Update bcachefs sources to d1fd471830 bcachefs: Add more debug checks
Diffstat (limited to 'libbcachefs/btree_cache.c')
-rw-r--r-- | libbcachefs/btree_cache.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libbcachefs/btree_cache.c b/libbcachefs/btree_cache.c index 325a1661..5bceff48 100644 --- a/libbcachefs/btree_cache.c +++ b/libbcachefs/btree_cache.c @@ -328,9 +328,9 @@ restart: clear_btree_node_accessed(b); } - memalloc_nofs_restore(flags); mutex_unlock(&bc->lock); out: + memalloc_nofs_restore(flags); return (unsigned long) freed * btree_pages(c); } @@ -381,11 +381,13 @@ void bch2_fs_btree_cache_exit(struct bch_fs *c) if (btree_node_dirty(b)) bch2_btree_complete_write(c, b, btree_current_write(b)); - clear_btree_node_dirty(b); + clear_btree_node_dirty(c, b); btree_node_data_free(c, b); } + BUG_ON(atomic_read(&c->btree_cache.dirty)); + while (!list_empty(&bc->freed)) { b = list_first_entry(&bc->freed, struct btree, list); list_del(&b->list); @@ -445,7 +447,7 @@ int bch2_fs_btree_cache_init(struct bch_fs *c) bc->shrink.scan_objects = bch2_btree_cache_scan; bc->shrink.seeks = 4; bc->shrink.batch = btree_pages(c) * 2; - register_shrinker(&bc->shrink); + ret = register_shrinker(&bc->shrink); out: pr_verbose_init(c->opts, "ret %i", ret); return ret; |