aboutsummaryrefslogtreecommitdiffstats
path: root/module/zfs/dmu.c
diff options
context:
space:
mode:
authorLOLi <[email protected]>2017-10-27 01:58:38 +0200
committerBrian Behlendorf <[email protected]>2017-10-26 16:58:38 -0700
commitee45fbd89465f12b39e97173a088175d4b712b5f (patch)
tree811bc8bc132c6aef42e6d18f2a6ffde9abe20f7b /module/zfs/dmu.c
parent88f9c9396bcce596db56dc880260f95c49a51d67 (diff)
ZFS send fails to dump objects larger than 128PiB
When dumping objects larger than 128PiB it's possible for do_dump() to miscalculate the FREE_RECORD offset due to an integer overflow condition: this prevents the receiving end from correctly restoring the dumped object. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Fabian Grünbichler <[email protected]> Signed-off-by: loli10K <[email protected]> Closes #6760
Diffstat (limited to 'module/zfs/dmu.c')
-rw-r--r--module/zfs/dmu.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/module/zfs/dmu.c b/module/zfs/dmu.c
index 42889504f..0a7b398f5 100644
--- a/module/zfs/dmu.c
+++ b/module/zfs/dmu.c
@@ -967,7 +967,7 @@ dmu_free_range(objset_t *os, uint64_t object, uint64_t offset,
if (err)
return (err);
ASSERT(offset < UINT64_MAX);
- ASSERT(size == -1ULL || size <= UINT64_MAX - offset);
+ ASSERT(size == DMU_OBJECT_END || size <= UINT64_MAX - offset);
dnode_free_range(dn, offset, size, tx);
dnode_rele(dn, FTAG);
return (0);