summaryrefslogtreecommitdiff
path: root/cmd_migrate.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd_migrate.c')
-rw-r--r--cmd_migrate.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/cmd_migrate.c b/cmd_migrate.c
index e9594ab7..4b6ceaa7 100644
--- a/cmd_migrate.c
+++ b/cmd_migrate.c
@@ -319,6 +319,7 @@ static void link_data(struct bch_fs *c, struct bch_inode_unpacked *dst,
struct bkey_i_extent *e;
BKEY_PADDED(k) k;
u64 b = sector_to_bucket(ca, physical);
+ struct bucket_mark m;
struct disk_reservation res;
unsigned sectors;
int ret;
@@ -337,7 +338,7 @@ static void link_data(struct bch_fs *c, struct bch_inode_unpacked *dst,
.gen = bucket(ca, b)->mark.gen,
});
- bucket_set_dirty(ca, b);
+ bucket_cmpxchg(bucket(ca, b), m, m.dirty = true);
ret = bch2_disk_reservation_get(c, &res, sectors, 1,
BCH_DISK_RESERVATION_NOFAIL);