diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2021-10-29 16:29:13 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:15 -0400 |
commit | 961b2d62821f23f9f963ee069b64eb8806f05e40 (patch) | |
tree | 4f78fc755bc7252ef9bb870fa1f73cb8c6a8e360 /fs/bcachefs/move.c | |
parent | 37f72492f401671f1f773cc62dddf742e7fc553b (diff) | |
download | lwn-961b2d62821f23f9f963ee069b64eb8806f05e40.tar.gz lwn-961b2d62821f23f9f963ee069b64eb8806f05e40.zip |
bcachefs: Assorted ec fixes
- The backpointer that ec_stripe_update_ptrs() uses now needs to include
the snapshot ID, which means we have to change where we add the
backpointer to after getting the snapshot ID for the new extents
- ec_stripe_update_ptrs() needs to be calling bch2_trans_begin()
- improve error message in bch2_mark_stripe()
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs/move.c')
-rw-r--r-- | fs/bcachefs/move.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/bcachefs/move.c b/fs/bcachefs/move.c index 5f50b66fe206..2f260360b089 100644 --- a/fs/bcachefs/move.c +++ b/fs/bcachefs/move.c @@ -8,6 +8,7 @@ #include "btree_update_interior.h" #include "buckets.h" #include "disk_groups.h" +#include "ec.h" #include "inode.h" #include "io.h" #include "journal_reclaim.h" @@ -135,6 +136,7 @@ int bch2_migrate_index_update(struct bch_write_op *op) struct btree_iter iter; struct migrate_write *m = container_of(op, struct migrate_write, op); + struct open_bucket *ec_ob = ec_open_bucket(c, &op->open_buckets); struct keylist *keys = &op->insert_keys; struct bkey_buf _new, _insert; int ret = 0; @@ -252,6 +254,8 @@ int bch2_migrate_index_update(struct bch_write_op *op) if (!ret) { bch2_btree_iter_set_pos(&iter, next_pos); atomic_long_inc(&c->extent_migrate_done); + if (ec_ob) + bch2_ob_add_backpointer(c, ec_ob, &insert->k); } err: if (ret == -EINTR) |