summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-04-09 14:02:54 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2022-04-09 14:02:54 -0400
commit8b23ea867a45ead0e97c95a72c8fee40058c5b95 (patch)
tree941ac6612c38b1ae4c52a4da973dfd748407c577
parent986533d8d5b21c8eb512bbb3f0496d3d2a087c5d (diff)
Update bcachefs sources to ac53c8857f fixup! bcachefs: Use a genradix for reading journal entries
-rw-r--r--.bcachefs_revision2
-rw-r--r--libbcachefs/btree_update_leaf.c2
-rw-r--r--libbcachefs/ec.c5
-rw-r--r--libbcachefs/ec.h1
-rw-r--r--libbcachefs/fs-io.c8
-rw-r--r--libbcachefs/journal_io.c2
-rw-r--r--libbcachefs/super.c1
7 files changed, 10 insertions, 11 deletions
diff --git a/.bcachefs_revision b/.bcachefs_revision
index a7745cdf..d9504b5e 100644
--- a/.bcachefs_revision
+++ b/.bcachefs_revision
@@ -1 +1 @@
-6ddf061e68560a2bb263b126af7e894a6c1afb5f
+ac53c8857f8bb192ed59c0b3fab853760d56918d
diff --git a/libbcachefs/btree_update_leaf.c b/libbcachefs/btree_update_leaf.c
index 36e14984..4fb07b4c 100644
--- a/libbcachefs/btree_update_leaf.c
+++ b/libbcachefs/btree_update_leaf.c
@@ -485,7 +485,7 @@ static int run_one_trans_trigger(struct btree_trans *trans, struct btree_insert_
} else if (overwrite && !i->overwrite_trigger_run) {
i->overwrite_trigger_run = true;
return bch2_trans_mark_old(trans, old, i->flags) ?: 1;
- } else if (!i->insert_trigger_run) {
+ } else if (!overwrite && !i->insert_trigger_run) {
i->insert_trigger_run = true;
return bch2_trans_mark_new(trans, i->k, i->flags) ?: 1;
} else {
diff --git a/libbcachefs/ec.c b/libbcachefs/ec.c
index a86b9748..dd0b3d7e 100644
--- a/libbcachefs/ec.c
+++ b/libbcachefs/ec.c
@@ -1682,11 +1682,14 @@ void bch2_fs_ec_exit(struct bch_fs *c)
bioset_exit(&c->ec_bioset);
}
-int bch2_fs_ec_init(struct bch_fs *c)
+void bch2_fs_ec_init_early(struct bch_fs *c)
{
INIT_WORK(&c->ec_stripe_create_work, ec_stripe_create_work);
INIT_WORK(&c->ec_stripe_delete_work, ec_stripe_delete_work);
+}
+int bch2_fs_ec_init(struct bch_fs *c)
+{
return bioset_init(&c->ec_bioset, 1, offsetof(struct ec_bio, bio),
BIOSET_NEED_BVECS);
}
diff --git a/libbcachefs/ec.h b/libbcachefs/ec.h
index af7f8eee..a4c13d61 100644
--- a/libbcachefs/ec.h
+++ b/libbcachefs/ec.h
@@ -224,6 +224,7 @@ void bch2_stripes_heap_to_text(struct printbuf *, struct bch_fs *);
void bch2_new_stripes_to_text(struct printbuf *, struct bch_fs *);
void bch2_fs_ec_exit(struct bch_fs *);
+void bch2_fs_ec_init_early(struct bch_fs *);
int bch2_fs_ec_init(struct bch_fs *);
#endif /* _BCACHEFS_EC_H */
diff --git a/libbcachefs/fs-io.c b/libbcachefs/fs-io.c
index 051372b8..05a02467 100644
--- a/libbcachefs/fs-io.c
+++ b/libbcachefs/fs-io.c
@@ -2909,13 +2909,7 @@ reassemble:
next_pos = insert ? bkey_start_pos(&delete.k) : delete.k.p;
- if (copy.k->k.size == k.k->size) {
- /*
- * If we're moving the entire extent, we can skip
- * running triggers:
- */
- trigger_flags |= BTREE_TRIGGER_NORUN;
- } else {
+ if (copy.k->k.size != k.k->size) {
/* We might end up splitting compressed extents: */
unsigned nr_ptrs =
bch2_bkey_nr_ptrs_allocated(bkey_i_to_s_c(copy.k));
diff --git a/libbcachefs/journal_io.c b/libbcachefs/journal_io.c
index eb20bf05..f9d13e6a 100644
--- a/libbcachefs/journal_io.c
+++ b/libbcachefs/journal_io.c
@@ -94,7 +94,7 @@ static int journal_entry_add(struct bch_fs *c, struct bch_dev *ca,
}
/* Drop entries we don't need anymore */
- if (!JSET_NO_FLUSH(j)) {
+ if (!JSET_NO_FLUSH(j) && !c->opts.read_entire_journal) {
genradix_for_each(&c->journal_entries, iter, _i) {
i = *_i;
diff --git a/libbcachefs/super.c b/libbcachefs/super.c
index e03c03ff..aba679c6 100644
--- a/libbcachefs/super.c
+++ b/libbcachefs/super.c
@@ -655,6 +655,7 @@ static struct bch_fs *bch2_fs_alloc(struct bch_sb *sb, struct bch_opts opts)
bch2_fs_allocator_foreground_init(c);
bch2_fs_rebalance_init(c);
bch2_fs_quota_init(c);
+ bch2_fs_ec_init_early(c);
INIT_LIST_HEAD(&c->list);