summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/zfs/dmu_send.c
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2019-03-04 12:55:10 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2019-03-04 12:55:10 +0000
commitd959f82bb4585e1dbd808a8420514ca76a20b9e1 (patch)
treecb1d2caf8ffe19d053a7f4e9d28b1b28c55dc08b /usr/src/uts/common/fs/zfs/dmu_send.c
parent9a1c2cfb58a9ae7026fac04af4206c2a74566ba9 (diff)
parent946342a260bbae359b48bf142ec1fe40792ee862 (diff)
downloadillumos-joyent-d959f82bb4585e1dbd808a8420514ca76a20b9e1.tar.gz
[illumos-gate merge]
commit 946342a260bbae359b48bf142ec1fe40792ee862 10452 ZoL: merge in large dnode feature fixes commit 1c802681fb0b5558958cd6f33bf56789a1b0ef29 10474 OS uuid string should not refer to Solaris. commit 42c5ef032d8316897a2ba9f9ebf4b9c2654ec345 10472 Limit number of multicast NCEs commit 573f5931ffa70de78fc2317b82e36d6344cf6c3c 10459 libstand: stand.h cstyle cleanup commit 3ae1c8196586c672e19cabdeaf43e82e5b5dc7f5 10464 loader: biosdisk.c cstyle cleanup commit f6760972b5c27d37b896ac15627645717ee70ddf 10460 loader: tem.c cstyle cleanup commit 3733333274b54097fa204d12dc30b5b6066d05bb 10458 libstand: assert.c cstyle cleanup commit a40552eda738f8ee0c3efd672257d52bfb3e8893 10456 libstand: arp.c cstyle cleanup commit 736e6700391d17ab1494985a80076fc185722699 10473 zfs(1M) missing cross-reference to zfs-program(1M) commit 92c1a61163ff6a0655b27bd429856e171e7ce5f5 10468 __ctype_mask[EOF] has been working by accident 10469 GCC's -faggressive-loop-optimizations is too aggressive 10470 array over-read in has_saved_fp()
Diffstat (limited to 'usr/src/uts/common/fs/zfs/dmu_send.c')
-rw-r--r--usr/src/uts/common/fs/zfs/dmu_send.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/usr/src/uts/common/fs/zfs/dmu_send.c b/usr/src/uts/common/fs/zfs/dmu_send.c
index 81de2970b2..f4b181f62a 100644
--- a/usr/src/uts/common/fs/zfs/dmu_send.c
+++ b/usr/src/uts/common/fs/zfs/dmu_send.c
@@ -2205,11 +2205,13 @@ receive_object(struct receive_writer_arg *rwa, struct drr_object *drro,
} else if (drro->drr_type != doi.doi_type ||
drro->drr_blksz != doi.doi_data_block_size ||
drro->drr_bonustype != doi.doi_bonus_type ||
- drro->drr_bonuslen != doi.doi_bonus_size) {
+ drro->drr_bonuslen != doi.doi_bonus_size ||
+ drro->drr_dn_slots != (doi.doi_dnodesize >> DNODE_SHIFT)) {
/* currently allocated, but with different properties */
- err = dmu_object_reclaim(rwa->os, drro->drr_object,
+ err = dmu_object_reclaim_dnsize(rwa->os, drro->drr_object,
drro->drr_type, drro->drr_blksz,
- drro->drr_bonustype, drro->drr_bonuslen, tx);
+ drro->drr_bonustype, drro->drr_bonuslen,
+ drro->drr_dn_slots << DNODE_SHIFT, tx);
}
if (err != 0) {
dmu_tx_commit(tx);
@@ -2259,12 +2261,10 @@ receive_freeobjects(struct receive_writer_arg *rwa,
int err;
err = dmu_object_info(rwa->os, obj, NULL);
- if (err == ENOENT) {
- obj++;
+ if (err == ENOENT)
continue;
- } else if (err != 0) {
+ else if (err != 0)
return (err);
- }
err = dmu_free_long_object(rwa->os, obj);
if (err != 0)