diff options
Diffstat (limited to 'cmd_migrate.c')
-rw-r--r-- | cmd_migrate.c | 3 |
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); |