]> git.sesse.net Git - bcachefs-tools-debian/commitdiff
Update bcachefs sources to ac53c8857f fixup! bcachefs: Use a genradix for reading...
authorKent Overstreet <kent.overstreet@gmail.com>
Sat, 9 Apr 2022 18:02:54 +0000 (14:02 -0400)
committerKent Overstreet <kent.overstreet@gmail.com>
Sat, 9 Apr 2022 18:02:54 +0000 (14:02 -0400)
.bcachefs_revision
libbcachefs/btree_update_leaf.c
libbcachefs/ec.c
libbcachefs/ec.h
libbcachefs/fs-io.c
libbcachefs/journal_io.c
libbcachefs/super.c

index a7745cdfe46b9da3a3525cbac684e5ba16275d08..d9504b5e87237a81d9d5d7006dd6c61e53c0d86d 100644 (file)
@@ -1 +1 @@
-6ddf061e68560a2bb263b126af7e894a6c1afb5f
+ac53c8857f8bb192ed59c0b3fab853760d56918d
index 36e149846aebde85d8718a2852637ccb55b5216a..4fb07b4cefc62ce39c07fb0d0bd13a4ec5c8515f 100644 (file)
@@ -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 {
index a86b9748e88fb2c58c9f1e5fb337d3d534ddde7a..dd0b3d7e619741e38d6fb8b576068c94519d7027 100644 (file)
@@ -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);
 }
index af7f8eee94b09d39406938b706ee1359b547968c..a4c13d61af109a89d6205752bf8e0e2b5a7bd565 100644 (file)
@@ -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 */
index 051372b883478cabd3eac260dd8f1cf4998a8ad8..05a0246722a9b18098e146a8d41cf15614f65a56 100644 (file)
@@ -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));
index eb20bf05cba84e3407ac15af8f9f1c19e291632b..f9d13e6abbbda8e4ed67b61392ec0de8c33c0a3d 100644 (file)
@@ -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;
 
index e03c03ffe493a592ed7e03c2efa981a24508f84c..aba679c6f30fedb11e28abe3eaf924192cbad8c5 100644 (file)
@@ -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);