X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=cmd_migrate.c;h=07fc145290034ae9eed9706d86caada62c116202;hb=f0334bbc1032b3be485767ec804ec868a8b1e7f0;hp=f2a6cc7d8e6345d4a2cd7ec52dcf0be960f591ac;hpb=411eb2575effb82343b99889014d5b2082291318;p=bcachefs-tools-debian diff --git a/cmd_migrate.c b/cmd_migrate.c index f2a6cc7..07fc145 100644 --- a/cmd_migrate.c +++ b/cmd_migrate.c @@ -378,6 +378,10 @@ static void copy_file(struct bch_fs *c, struct bch_inode_unpacked *dst, fiemap_iter_exit(&iter); fiemap_for_each(src_fd, iter, e) { + u64 src_max = roundup(src_size, block_bytes(c)); + + e.fe_length = min(e.fe_length, src_max - e.fe_logical); + if ((e.fe_logical & (block_bytes(c) - 1)) || (e.fe_length & (block_bytes(c) - 1))) die("Unaligned extent in %s - can't handle", src_path);