summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormm <mm@FreeBSD.org>2012-08-19 09:34:04 +0000
committermm <mm@FreeBSD.org>2012-08-19 09:34:04 +0000
commitcb5fb23a856fd77e2df9317f14c941c325f37287 (patch)
treea85c950d10bbcfe62f968188bdbb77a8bcd0f1bd
parent5f16f826203771ebf06788b1e628defffe2fb8cc (diff)
downloadFreeBSD-src-cb5fb23a856fd77e2df9317f14c941c325f37287.zip
FreeBSD-src-cb5fb23a856fd77e2df9317f14c941c325f37287.tar.gz
Update vendor-sys/illumos/dist to illumos-gate 13772:2579580ac955
References: https://www.illumos.org/issues/3085 (zfs diff panics) Obtained from: ssh://anonhg@hg.illumos.org/illumos-gate
-rw-r--r--uts/common/Makefile.files4
-rw-r--r--uts/common/fs/zfs/dsl_dataset.c7
-rw-r--r--uts/common/fs/zfs/spa_history.c4
3 files changed, 9 insertions, 6 deletions
diff --git a/uts/common/Makefile.files b/uts/common/Makefile.files
index a2b4396..4213fa8 100644
--- a/uts/common/Makefile.files
+++ b/uts/common/Makefile.files
@@ -1846,7 +1846,7 @@ IDM_OBJS += $(IDM_SHARED_OBJS) \
VR_OBJS += vr.o
-ATGE_OBJS += atge_main.o atge_l1e.o atge_mii.o atge_l1.o
+ATGE_OBJS += atge_main.o atge_l1e.o atge_mii.o atge_l1.o atge_l1c.o
YGE_OBJS = yge.o
@@ -1921,7 +1921,7 @@ IXGBE_OBJS = ixgbe_82598.o ixgbe_82599.o ixgbe_api.o \
ixgbe_buf.o ixgbe_debug.o ixgbe_gld.o \
ixgbe_log.o ixgbe_main.o \
ixgbe_osdep.o ixgbe_rx.o ixgbe_stat.o \
- ixgbe_tx.o
+ ixgbe_tx.o ixgbe_x540.o ixgbe_mbx.o
#
# NIU 10G/1G driver module
diff --git a/uts/common/fs/zfs/dsl_dataset.c b/uts/common/fs/zfs/dsl_dataset.c
index 555797e..12ed3ca 100644
--- a/uts/common/fs/zfs/dsl_dataset.c
+++ b/uts/common/fs/zfs/dsl_dataset.c
@@ -3903,6 +3903,10 @@ dsl_dataset_user_release_sync(void *arg1, void *tag, dmu_tx_t *tx)
VERIFY(error == 0 || error == ENOENT);
zapobj = ds->ds_phys->ds_userrefs_obj;
VERIFY(0 == zap_remove(mos, zapobj, ra->htag, tx));
+
+ spa_history_log_internal_ds(ds, "release", tx,
+ "tag = %s refs now = %lld", ra->htag, (longlong_t)refs);
+
if (ds->ds_userrefs == 0 && ds->ds_phys->ds_num_children == 1 &&
DS_IS_DEFER_DESTROY(ds)) {
struct dsl_ds_destroyarg dsda = {0};
@@ -3913,9 +3917,6 @@ dsl_dataset_user_release_sync(void *arg1, void *tag, dmu_tx_t *tx)
/* We already did the destroy_check */
dsl_dataset_destroy_sync(&dsda, tag, tx);
}
-
- spa_history_log_internal_ds(ds, "release", tx,
- "tag = %s refs now = %lld", ra->htag, (longlong_t)refs);
}
static int
diff --git a/uts/common/fs/zfs/spa_history.c b/uts/common/fs/zfs/spa_history.c
index f2c32f5..96970da 100644
--- a/uts/common/fs/zfs/spa_history.c
+++ b/uts/common/fs/zfs/spa_history.c
@@ -440,8 +440,10 @@ log_internal(nvlist_t *nvl, const char *operation, spa_t *spa,
* If this is part of creating a pool, not everything is
* initialized yet, so don't bother logging the internal events.
*/
- if (tx->tx_txg == TXG_INITIAL)
+ if (tx->tx_txg == TXG_INITIAL) {
+ fnvlist_free(nvl);
return;
+ }
msg = kmem_alloc(vsnprintf(NULL, 0, fmt, adx) + 1, KM_SLEEP);
(void) vsprintf(msg, fmt, adx);
OpenPOWER on IntegriCloud