diff -r d149b2034cfc -r 8c712bbb18ea usr/src/uts/common/fs/zfs/dmu_traverse.c --- a/usr/src/uts/common/fs/zfs/dmu_traverse.c Sat Aug 07 15:19:49 2010 -0700 +++ b/usr/src/uts/common/fs/zfs/dmu_traverse.c Sat Aug 07 19:27:15 2010 -0600 @@ -162,6 +162,8 @@ if (td->td_flags & TRAVERSE_PRE) { err = td->td_func(td->td_spa, NULL, bp, pbuf, zb, dnp, td->td_arg); + if (err == TRAVERSE_VISIT_NO_CHILDREN) + return (0); if (err) return (err); }