diff options
author | LOLi <[email protected]> | 2017-10-27 01:58:38 +0200 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2017-10-26 16:58:38 -0700 |
commit | ee45fbd89465f12b39e97173a088175d4b712b5f (patch) | |
tree | 811bc8bc132c6aef42e6d18f2a6ffde9abe20f7b /module/zfs/dmu.c | |
parent | 88f9c9396bcce596db56dc880260f95c49a51d67 (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.c | 2 |
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); |