From 330d06f90d143b41b276796526a66a1c1fff046d Mon Sep 17 00:00:00 2001 From: Matthew Ahrens Date: Thu, 17 Nov 2011 10:14:36 -0800 Subject: Illumos #1644, #1645, #1646, #1647, #1708 1644 add ZFS "clones" property 1645 add ZFS "written" and "written@..." properties 1646 "zfs send" should estimate size of stream 1647 "zfs destroy" should determine space reclaimed by destroying multiple snapshots 1708 adjust size of zpool history data References: https://www.illumos.org/issues/1644 https://www.illumos.org/issues/1645 https://www.illumos.org/issues/1646 https://www.illumos.org/issues/1647 https://www.illumos.org/issues/1708 This commit modifies the user to kernel space ioctl ABI. Extra care should be taken when updating to ensure both the kernel modules and utilities are updated. This change has reordered all of the new ioctl()s to the end of the list. This should help minimize this issue in the future. Reviewed by: Richard Lowe Reviewed by: George Wilson Reviewed by: Albert Lee Approved by: Garrett D'Amore Ported by: Martin Matuska Signed-off-by: Brian Behlendorf Closes #826 Closes #664 --- module/zfs/bpobj.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'module/zfs/bpobj.c') diff --git a/module/zfs/bpobj.c b/module/zfs/bpobj.c index 72be31235..022921c66 100644 --- a/module/zfs/bpobj.c +++ b/module/zfs/bpobj.c @@ -20,11 +20,13 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011 by Delphix. All rights reserved. */ #include #include #include +#include uint64_t bpobj_alloc(objset_t *os, int blocksize, dmu_tx_t *tx) @@ -440,7 +442,10 @@ space_range_cb(void *arg, const blkptr_t *bp, dmu_tx_t *tx) struct space_range_arg *sra = arg; if (bp->blk_birth > sra->mintxg && bp->blk_birth <= sra->maxtxg) { - sra->used += bp_get_dsize_sync(sra->spa, bp); + if (dsl_pool_sync_context(spa_get_dsl(sra->spa))) + sra->used += bp_get_dsize_sync(sra->spa, bp); + else + sra->used += bp_get_dsize(sra->spa, bp); sra->comp += BP_GET_PSIZE(bp); sra->uncomp += BP_GET_UCSIZE(bp); } -- cgit v1.2.3