summaryrefslogtreecommitdiff
path: root/fs/bcachefs/move.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-10-29 16:29:13 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:09:15 -0400
commit961b2d62821f23f9f963ee069b64eb8806f05e40 (patch)
tree4f78fc755bc7252ef9bb870fa1f73cb8c6a8e360 /fs/bcachefs/move.c
parent37f72492f401671f1f773cc62dddf742e7fc553b (diff)
downloadlwn-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.c4
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)