From: Daan De Meyer Date: Wed, 12 Oct 2022 18:04:11 +0000 (+0200) Subject: repart: Use COPY_REFLINK in context_copy_blocks() X-Git-Tag: v253-rc1~527^2~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8c467ee8ef870d172b24e716130d7a0b6b882d6b;p=thirdparty%2Fsystemd.git repart: Use COPY_REFLINK in context_copy_blocks() We might be copying between files without a loop device involved. In that case, a reflink is possible and will be much faster. --- diff --git a/src/partition/repart.c b/src/partition/repart.c index 94a87b97883..3a4f181370a 100644 --- a/src/partition/repart.c +++ b/src/partition/repart.c @@ -3200,7 +3200,7 @@ static int context_copy_blocks(Context *context) { log_info("Copying in '%s' (%s) on block level into future partition %" PRIu64 ".", p->copy_blocks_path, FORMAT_BYTES(p->copy_blocks_size), p->partno); - r = copy_bytes(p->copy_blocks_fd, target_fd, p->copy_blocks_size, 0); + r = copy_bytes(p->copy_blocks_fd, target_fd, p->copy_blocks_size, COPY_REFLINK); if (r < 0) return log_error_errno(r, "Failed to copy in data from '%s': %m", p->copy_blocks_path);