summaryrefslogtreecommitdiff
path: root/fs/bcachefs/btree_cache.c
AgeCommit message (Collapse)Author
2018-07-10bcachefs: fix BTREE_INSERT_NOUNLOCKKent Overstreet
btree_node_merge -> get_sibling -> btree_node_lock could drop locks, when using linked iterators
2018-07-01bcachefs: refactor bch2_btree_node_prefetch()Kent Overstreet
2018-06-30bcachefs: refactor bch2_btree_node_get_sibling() a bitKent Overstreet
2018-06-27bcachefs: bch2_btree_iter_upgrade()/downgrade()Kent Overstreet
Replaces bch2_btree_iter_set_locks_want() - also add more assertions Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-06-03bcachefs: drop locks when needed in bch2_btree_node_get_sibling()Kent Overstreet
2018-06-03bcachefs: implement BTREE_INSERT_NOUNLOCKKent Overstreet
BTREE_INSERT_NOUNLOCK means after a sucessful btree update, do not drop any locks (e.g. while merging nodes). This is going to be used to fix some locking primarily related to bi_size in bch_inode_info.
2018-05-22bcachefs: add time stats for btree lock contentionKent Overstreet
2018-05-22bcachefs: delete old incorrect assertionKent Overstreet
2018-05-22bcachefs: -o verbose_init, more error messagesKent Overstreet
for tracing problems with mount
2018-05-22bcachefs: optimize bch2_btree_iter_traverse() callsKent Overstreet
Reduce unnecessary calls, and also call it from bch2_btree_insert_at() when needed Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-05-22bcachefs: btree_iter_next()/btree_iter_next_slot()Kent Overstreet
previously, bch2_btree_iter_advance_pos() would use iter->k to calculate the next iterator position, assuming iter->k had been set by bch2_btree_iter_peek()/peek_with_holes(); this was busted because it was possible in certain codepaths to call bch2_btree_iter_advance_pos() when either iter->k hadn't been initialized, or bch2_btree_iter_traverse() -> btree_iter_down() had scribbled over it. This gets rid of bch2_btree_iter_advance_pos, in favor of bch2_btree_iter_next() and bche_btree_iter_next_slot(), which both just call peek() internall if the iterator isn't uptodate. It's a performance improvement, too. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-05-22bcachefs: struct btree_iter_levelKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2018-05-22bcachefs: provide an obj_cmpfn to rhashtable codeKent Overstreet
default is to use memcmp, which isn't getting inlined (due to kernel not using __builtin_memcpy?)
2018-05-22bcachefs: fix a bug with btree write completions when btree writes blockedKent Overstreet
2018-05-22bcachefs: fix a locking bugKent Overstreet
2018-05-22bcachefs: Refactor btree cache codeKent Overstreet
making struct bch_fs a bit smaller
2018-05-22bcachefs: don't return SHRINK_STOP when btree_cache_alloc_lock heldKent Overstreet
2018-05-22bcachefs: Clean up bucket_size usage, tracepointsKent Overstreet
2018-05-22bcachefs: Initial commitKent Overstreet
Fork of drivers/md/bcache Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>