MFV r329774:
8408 dsl_props_set_sync_impl() does not handle nested nvlists correctly
illumos/illumos-gate@
85723e5eec42f46dbfdb4c09b9e1ed66501d1ccf
When iterating over the input nvlist in dsl_props_set_sync_impl() when we
don't preserve the nvpair name before looking up ZPROP_VALUE, so when we
later go to process it nvpair_name() is always "value" instead of the actual
property name.
This results in a couple of bugs in the recv code:
- received properties are not restored correctly when failing to receive
an incremental send stream
- received properties are not completely replaced by the new ones when
successfully receiving an incremental send stream
This was discovered on ZFS on Linux (fixed in
https://github.com/zfsonlinux/zfs/commit/
5f1346c29997dd4e02acf4c19c875d5484f33b1e)
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Approved by: Dan McDonald <danmcd@joyent.com>
Author: loli10K <ezomori.nozomu@gmail.com>