summaryrefslogtreecommitdiffstats
path: root/module/zfs/dmu_send.c
diff options
context:
space:
mode:
authorSimon Klinkert <[email protected]>2012-06-22 10:17:50 -0400
committerBrian Behlendorf <[email protected]>2012-08-25 12:28:29 -0700
commitc578f007ff9d8ee3d5070960f787fa48d46b7c3c (patch)
treea00e08e98e762cf991b3759866a77a5b440e757b /module/zfs/dmu_send.c
parenta47587389e98820ea194fd16cd658491f8e4ee31 (diff)
Illumos #2901: zfs receive fails for exabyte sparse files
Reviewed by: Matthew Ahrens <[email protected]> Approved by: Dan McDonald <[email protected]> References: https://www.illumos.org/issues/2901 Ported by: Martin Matuska <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]>
Diffstat (limited to 'module/zfs/dmu_send.c')
-rw-r--r--module/zfs/dmu_send.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/module/zfs/dmu_send.c b/module/zfs/dmu_send.c
index 2f0613211..9f9003744 100644
--- a/module/zfs/dmu_send.c
+++ b/module/zfs/dmu_send.c
@@ -95,6 +95,9 @@ dump_free(struct backuparg *ba, uint64_t object, uint64_t offset,
{
struct drr_free *drrf = &(ba->drr->drr_u.drr_free);
+ if (length != -1ULL && offset + length < offset)
+ length = -1ULL;
+
/*
* If there is a pending op, but it's not PENDING_FREE, push it out,
* since free block aggregation can only be done for blocks of the