diff options
author | LOLi <[email protected]> | 2018-01-31 00:54:33 +0100 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2018-01-30 15:54:33 -0800 |
commit | bee7e4ff12c7170671606bcea33a6eef6cad5d58 (patch) | |
tree | dc4764edc34ecbc7108046c7980a47b0794e42e6 /tests/zfs-tests | |
parent | 405ec516abbae42f205328ffc1bd7b38cbdd45da (diff) |
Fix 'zfs receive -o' when used with '-e|-d'
When used in conjunction with one of '-e' or '-d' zfs receive options
none of the properties requested to be set (-o) are actually applied:
this is caused by a wrong assumption made about the toplevel dataset
in zfs_receive_one().
Fix this by correctly detecting the toplevel dataset.
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: loli10K <[email protected]>
Closes #7088
Diffstat (limited to 'tests/zfs-tests')
-rwxr-xr-x | tests/zfs-tests/tests/functional/cli_root/zfs_receive/receive-o-x_props_override.ksh | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_receive/receive-o-x_props_override.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_receive/receive-o-x_props_override.ksh index 7137fe278..e4e69851f 100755 --- a/tests/zfs-tests/tests/functional/cli_root/zfs_receive/receive-o-x_props_override.ksh +++ b/tests/zfs-tests/tests/functional/cli_root/zfs_receive/receive-o-x_props_override.ksh @@ -371,6 +371,42 @@ log_must eval "check_prop_source $dest type filesystem -" log_must eval "check_prop_source $dest atime off local" log_must eval "check_prop_source $destsub type volume -" log_must eval "check_prop_source $destsub atime - -" +# Cleanup +log_must zfs destroy -r -f $orig +log_must zfs destroy -r -f $dest + +# +# 3.8 Verify 'zfs recv -x|-o' works correctly when used in conjunction with -d +# and -e options. +# +log_must zfs create -p $orig/1/2/3/4 +log_must eval "zfs set copies=2 $orig" +log_must eval "zfs set atime=on $orig" +log_must eval "zfs set '$userprop:orig'='oldval' $orig" +log_must zfs snapshot -r $orig@snap1 +log_must eval "zfs send -R $orig/1/2@snap1 > $streamfile_repl" +# Verify 'zfs recv -e' +log_must zfs create $dest +log_must eval "zfs receive -e -o copies=3 -x atime "\ + "-o '$userprop:orig'='newval' $dest < $streamfile_repl" +log_must datasetexists $dest/2/3/4 +log_must eval "check_prop_source $dest/2 copies 3 local" +log_must eval "check_prop_inherit $dest/2/3/4 copies $dest/2" +log_must eval "check_prop_source $dest/2/3/4 atime on default" +log_must eval "check_prop_source $dest/2 '$userprop:orig' 'newval' local" +log_must eval "check_prop_inherit $dest/2/3/4 '$userprop:orig' $dest/2" +log_must zfs destroy -r -f $dest +# Verify 'zfs recv -d' +log_must zfs create $dest +typeset fs="$(echo $orig | awk -F'/' '{print $NF}')" +log_must eval "zfs receive -d -o copies=3 -x atime "\ + "-o '$userprop:orig'='newval' $dest < $streamfile_repl" +log_must datasetexists $dest/$fs/1/2/3/4 +log_must eval "check_prop_source $dest/$fs/1/2 copies 3 local" +log_must eval "check_prop_inherit $dest/$fs/1/2/3/4 copies $dest/$fs/1/2" +log_must eval "check_prop_source $dest/$fs/1/2/3/4 atime on default" +log_must eval "check_prop_source $dest/$fs/1/2 '$userprop:orig' 'newval' local" +log_must eval "check_prop_inherit $dest/$fs/1/2/3/4 '$userprop:orig' $dest/$fs/1/2" # We don't need to cleanup here log_pass "ZFS receive property override and exclude options passed." |