aboutsummaryrefslogtreecommitdiff
path: root/sys/cddl/contrib/opensolaris/uts
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2020-02-26 20:38:48 +0000
committerAlexander Motin <mav@FreeBSD.org>2020-02-26 20:38:48 +0000
commita33a65ce2209e6477ea3ec647869fb213570f0af (patch)
treea23a1873646d9773548f28a45cd1a957f35405e9 /sys/cddl/contrib/opensolaris/uts
parenta0df113ce229aa02dbc28cda3f631285399a0333 (diff)
downloadsrc-a33a65ce2209e6477ea3ec647869fb213570f0af.tar.gz
src-a33a65ce2209e6477ea3ec647869fb213570f0af.zip
MFZoL: Relax restriction on zfs_ioc_next_obj() iteration
Per the documentation for dnode_next_offset in dnode.c, the "txg" parameter specifies a lower bound on which transaction the dnode can be found in. We are interested in all dnodes that are removed between the first and last transaction in the snapshot. It doesn't need to be created in that snapshot to correspond to a removed file. In fact, the behavior of zfs diff in the test case exactly matches this: the transaction that created the data that was deleted in snapshot "2" was produced before, in snapshot "1", definitely predating the first transaction in snapshot "2". Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Tim Chase <Tim Chase <tim@onlight.com> Closes #2081 zfsonlinux/zfs@7290cd3c4ed19fb3f75b8133db2e36afcdd24beb MFC after: 1 week
Notes
Notes: svn path=/head/; revision=358357
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
index 4c225dc40371..6681778d6d74 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
@@ -5553,8 +5553,7 @@ zfs_ioc_next_obj(zfs_cmd_t *zc)
if (error != 0)
return (error);
- error = dmu_object_next(os, &zc->zc_obj, B_FALSE,
- dsl_dataset_phys(os->os_dsl_dataset)->ds_prev_snap_txg);
+ error = dmu_object_next(os, &zc->zc_obj, B_FALSE, 0);
dmu_objset_rele(os, FTAG);
return (error);