diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2018-02-11 14:57:58 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2018-02-12 01:25:33 -0500 |
commit | 3ae8314dc86919e4cc68b6ea031b988badeb79c9 (patch) | |
tree | 617ce113ef5111ab9e4e3238c51a066a9e17eb55 /fs/bcachefs/btree_update_leaf.c | |
parent | 124474802a374d6864c93768e9a1477e564cf08c (diff) |
bcachefs: Fix allocator striping
Diffstat (limited to 'fs/bcachefs/btree_update_leaf.c')
-rw-r--r-- | fs/bcachefs/btree_update_leaf.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/fs/bcachefs/btree_update_leaf.c b/fs/bcachefs/btree_update_leaf.c index 4b252b6d5e01..007aa5ef4091 100644 --- a/fs/bcachefs/btree_update_leaf.c +++ b/fs/bcachefs/btree_update_leaf.c @@ -272,15 +272,10 @@ static void multi_unlock_write(struct btree_insert *trans) bch2_btree_node_unlock_write(i->iter->l[0].b, i->iter); } -static inline void btree_trans_sort(struct btree_insert *trans) +static inline int btree_trans_cmp(struct btree_insert_entry l, + struct btree_insert_entry r) { - int i, end = trans->nr; - - while (--end > 0) - for (i = 0; i < end; i++) - if (btree_iter_cmp(trans->entries[i].iter, - trans->entries[i + 1].iter) > 0) - swap(trans->entries[i], trans->entries[i + 1]); + return btree_iter_cmp(l.iter, r.iter); } /* Normal update interface: */ @@ -313,7 +308,7 @@ int __bch2_btree_insert_at(struct btree_insert *trans) bkey_i_to_s_c(i->k))); } - btree_trans_sort(trans); + bubble_sort(trans->entries, trans->nr, btree_trans_cmp); if (unlikely(!percpu_ref_tryget(&c->writes))) return -EROFS; |