summaryrefslogtreecommitdiffstats
path: root/sys/cddl/contrib
diff options
context:
space:
mode:
authormm <mm@FreeBSD.org>2010-06-12 11:19:51 +0000
committermm <mm@FreeBSD.org>2010-06-12 11:19:51 +0000
commitd97ee7139a7df5b95118dcf5cf43a08a3ef8c0fe (patch)
treef48270b7f9b58aef2fff29cc66c391396bcada01 /sys/cddl/contrib
parent7a92822e3451249e854914c7c8db799d63496165 (diff)
downloadFreeBSD-src-d97ee7139a7df5b95118dcf5cf43a08a3ef8c0fe.zip
FreeBSD-src-d97ee7139a7df5b95118dcf5cf43a08a3ef8c0fe.tar.gz
Fix zfs destroy fails to free object in open context, stops up txg train
OpenSolaris onnv-revision: 9409:9dc3f17354ed Obtained from: OpenSolaris (Bug ID 6809683) Approved by: pjd, delphij (mentor) MFC after: 3 days
Diffstat (limited to 'sys/cddl/contrib')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
index 5f64116..f0b4080 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
@@ -1317,16 +1317,7 @@ dnode_next_offset_level(dnode_t *dn, int flags, uint64_t *offset,
for (i = (*offset >> span) & (blkfill - 1);
i >= 0 && i < blkfill; i += inc) {
- boolean_t newcontents = B_TRUE;
- if (txg) {
- int j;
- newcontents = B_FALSE;
- for (j = 0; j < dnp[i].dn_nblkptr; j++) {
- if (dnp[i].dn_blkptr[j].blk_birth > txg)
- newcontents = B_TRUE;
- }
- }
- if (!dnp[i].dn_type == hole && newcontents)
+ if ((dnp[i].dn_type == DMU_OT_NONE) == hole)
break;
*offset += (1ULL << span) * inc;
}
OpenPOWER on IntegriCloud