summaryrefslogtreecommitdiff
path: root/fs/bcachefs/btree_update_leaf.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2018-02-11 14:57:58 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2018-02-11 14:57:58 -0500
commit01cede4b4502df82958703963b65a20d479d5f17 (patch)
tree82df7a7ddc5176f078b9ebef20fd603b5acb5099 /fs/bcachefs/btree_update_leaf.c
parent4506cd5ead31209a6a646c2412cbc7be735ebda4 (diff)
allocator striping wipalloc_striping
Diffstat (limited to 'fs/bcachefs/btree_update_leaf.c')
-rw-r--r--fs/bcachefs/btree_update_leaf.c13
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;