summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/dedupe-range.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/dedupe-range.c b/lib/dedupe-range.c
index 614c9c5..c67b62c 100644
--- a/lib/dedupe-range.c
+++ b/lib/dedupe-range.c
@@ -58,8 +58,11 @@ void dedupe_range(uint64_t src_length, struct filepos src, struct filepos *dsts)
uint64_t bytes_todo = src_length;
uint64_t bytes_done = 0;
while (bytes_todo > 0) {
+ // allegedly, these need to be aligned to the
+ // fundamental block size (statfs->f_frsize,
+ // fall back to ->f_bsize)
range->src_offset = src.offset + bytes_done;
- range->src_length = MIN(bytes_todo, 16*1024*1024/*16MiB*/); // XXX "silently ignore"?
+ range->src_length = bytes_todo;
if (ioctl(src_fd, FIDEDUPERANGE, range) < 0)
error(EXIT_FAILURE, errno, "FIDEDUPERANGE");