1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-24 11:29:10 +00:00

Update vendor/illumos/dist and vendor/illumos-sys/dist

to illumos-gate 13805:e3a9ae14a119
(zfs changes, illumos issues #1884, #3006)
This commit is contained in:
Martin Matuska 2012-09-09 07:52:13 +00:00
parent 4ecf6b4e55
commit e73ba0ab20
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor-sys/illumos/dist/; revision=240262
34 changed files with 613 additions and 669 deletions

File diff suppressed because it is too large Load Diff

View File

@ -979,7 +979,7 @@ ztest_dsl_prop_set_uint64(char *osname, zfs_prop_t prop, uint64_t value,
ztest_record_enospc(FTAG);
return (error);
}
ASSERT3U(error, ==, 0);
ASSERT0(error);
VERIFY3U(dsl_prop_get(osname, propname, sizeof (curval),
1, &curval, setpoint), ==, 0);
@ -1011,7 +1011,7 @@ ztest_spa_prop_set_uint64(zpool_prop_t prop, uint64_t value)
ztest_record_enospc(FTAG);
return (error);
}
ASSERT3U(error, ==, 0);
ASSERT0(error);
return (error);
}
@ -1708,7 +1708,7 @@ ztest_replay_setattr(ztest_ds_t *zd, lr_setattr_t *lr, boolean_t byteswap)
ASSERT3U(lr->lr_size, >=, sizeof (*bbt));
ASSERT3U(lr->lr_size, <=, db->db_size);
VERIFY3U(dmu_set_bonus(db, lr->lr_size, tx), ==, 0);
VERIFY0(dmu_set_bonus(db, lr->lr_size, tx));
bbt = ztest_bt_bonus(db);
ztest_bt_generate(bbt, os, lr->lr_foid, -1ULL, lr->lr_mode, txg, crtxg);
@ -3043,7 +3043,7 @@ ztest_objset_destroy_cb(const char *name, void *arg)
error = dmu_object_info(os, ZTEST_DIROBJ, &doi);
if (error != ENOENT) {
/* We could have crashed in the middle of destroying it */
ASSERT3U(error, ==, 0);
ASSERT0(error);
ASSERT3U(doi.doi_type, ==, DMU_OT_ZAP_OTHER);
ASSERT3S(doi.doi_physical_blocks_512, >=, 0);
}
@ -3452,10 +3452,10 @@ ztest_dmu_read_write(ztest_ds_t *zd, uint64_t id)
*/
error = dmu_read(os, packobj, packoff, packsize, packbuf,
DMU_READ_PREFETCH);
ASSERT3U(error, ==, 0);
ASSERT0(error);
error = dmu_read(os, bigobj, bigoff, bigsize, bigbuf,
DMU_READ_PREFETCH);
ASSERT3U(error, ==, 0);
ASSERT0(error);
/*
* Get a tx for the mods to both packobj and bigobj.
@ -3765,10 +3765,10 @@ ztest_dmu_read_write_zcopy(ztest_ds_t *zd, uint64_t id)
if (i != 0 || ztest_random(2) != 0) {
error = dmu_read(os, packobj, packoff,
packsize, packbuf, DMU_READ_PREFETCH);
ASSERT3U(error, ==, 0);
ASSERT0(error);
error = dmu_read(os, bigobj, bigoff, bigsize,
bigbuf, DMU_READ_PREFETCH);
ASSERT3U(error, ==, 0);
ASSERT0(error);
}
compare_and_update_pbbufs(s, packbuf, bigbuf, bigsize,
n, chunksize, txg);
@ -4039,7 +4039,7 @@ ztest_zap(ztest_ds_t *zd, uint64_t id)
if (error == ENOENT)
return;
ASSERT3U(error, ==, 0);
ASSERT0(error);
tx = dmu_tx_create(os);
dmu_tx_hold_zap(tx, object, B_TRUE, NULL);
@ -4235,7 +4235,7 @@ ztest_commit_callback(void *arg, int error)
data->zcd_called = B_TRUE;
if (error == ECANCELED) {
ASSERT3U(data->zcd_txg, ==, 0);
ASSERT0(data->zcd_txg);
ASSERT(!data->zcd_added);
/*
@ -4440,7 +4440,7 @@ ztest_spa_prop_get_set(ztest_ds_t *zd, uint64_t id)
(void) ztest_spa_prop_set_uint64(ZPOOL_PROP_DEDUPDITTO,
ZIO_DEDUPDITTO_MIN + ztest_random(ZIO_DEDUPDITTO_MIN));
VERIFY3U(spa_prop_get(ztest_spa, &props), ==, 0);
VERIFY0(spa_prop_get(ztest_spa, &props));
if (ztest_opts.zo_verbose >= 6)
dump_nvlist(props, 4);
@ -5262,7 +5262,7 @@ ztest_dataset_open(int d)
}
ASSERT(error == 0 || error == EEXIST);
VERIFY3U(dmu_objset_hold(name, zd, &os), ==, 0);
VERIFY0(dmu_objset_hold(name, zd, &os));
(void) rw_unlock(&ztest_name_lock);
ztest_zd_init(zd, ZTEST_GET_SHARED_DS(d), os);

View File

@ -50,7 +50,7 @@ nvlist_t *
fnvlist_alloc(void)
{
nvlist_t *nvl;
VERIFY3U(nvlist_alloc(&nvl, NV_UNIQUE_NAME, KM_SLEEP), ==, 0);
VERIFY0(nvlist_alloc(&nvl, NV_UNIQUE_NAME, KM_SLEEP));
return (nvl);
}
@ -64,7 +64,7 @@ size_t
fnvlist_size(nvlist_t *nvl)
{
size_t size;
VERIFY3U(nvlist_size(nvl, &size, NV_ENCODE_NATIVE), ==, 0);
VERIFY0(nvlist_size(nvl, &size, NV_ENCODE_NATIVE));
return (size);
}
@ -96,7 +96,7 @@ nvlist_t *
fnvlist_unpack(char *buf, size_t buflen)
{
nvlist_t *rv;
VERIFY3U(nvlist_unpack(buf, buflen, &rv, KM_SLEEP), ==, 0);
VERIFY0(nvlist_unpack(buf, buflen, &rv, KM_SLEEP));
return (rv);
}
@ -104,195 +104,195 @@ nvlist_t *
fnvlist_dup(nvlist_t *nvl)
{
nvlist_t *rv;
VERIFY3U(nvlist_dup(nvl, &rv, KM_SLEEP), ==, 0);
VERIFY0(nvlist_dup(nvl, &rv, KM_SLEEP));
return (rv);
}
void
fnvlist_merge(nvlist_t *dst, nvlist_t *src)
{
VERIFY3U(nvlist_merge(dst, src, KM_SLEEP), ==, 0);
VERIFY0(nvlist_merge(dst, src, KM_SLEEP));
}
void
fnvlist_add_boolean(nvlist_t *nvl, const char *name)
{
VERIFY3U(nvlist_add_boolean(nvl, name), ==, 0);
VERIFY0(nvlist_add_boolean(nvl, name));
}
void
fnvlist_add_boolean_value(nvlist_t *nvl, const char *name, boolean_t val)
{
VERIFY3U(nvlist_add_boolean_value(nvl, name, val), ==, 0);
VERIFY0(nvlist_add_boolean_value(nvl, name, val));
}
void
fnvlist_add_byte(nvlist_t *nvl, const char *name, uchar_t val)
{
VERIFY3U(nvlist_add_byte(nvl, name, val), ==, 0);
VERIFY0(nvlist_add_byte(nvl, name, val));
}
void
fnvlist_add_int8(nvlist_t *nvl, const char *name, int8_t val)
{
VERIFY3U(nvlist_add_int8(nvl, name, val), ==, 0);
VERIFY0(nvlist_add_int8(nvl, name, val));
}
void
fnvlist_add_uint8(nvlist_t *nvl, const char *name, uint8_t val)
{
VERIFY3U(nvlist_add_uint8(nvl, name, val), ==, 0);
VERIFY0(nvlist_add_uint8(nvl, name, val));
}
void
fnvlist_add_int16(nvlist_t *nvl, const char *name, int16_t val)
{
VERIFY3U(nvlist_add_int16(nvl, name, val), ==, 0);
VERIFY0(nvlist_add_int16(nvl, name, val));
}
void
fnvlist_add_uint16(nvlist_t *nvl, const char *name, uint16_t val)
{
VERIFY3U(nvlist_add_uint16(nvl, name, val), ==, 0);
VERIFY0(nvlist_add_uint16(nvl, name, val));
}
void
fnvlist_add_int32(nvlist_t *nvl, const char *name, int32_t val)
{
VERIFY3U(nvlist_add_int32(nvl, name, val), ==, 0);
VERIFY0(nvlist_add_int32(nvl, name, val));
}
void
fnvlist_add_uint32(nvlist_t *nvl, const char *name, uint32_t val)
{
VERIFY3U(nvlist_add_uint32(nvl, name, val), ==, 0);
VERIFY0(nvlist_add_uint32(nvl, name, val));
}
void
fnvlist_add_int64(nvlist_t *nvl, const char *name, int64_t val)
{
VERIFY3U(nvlist_add_int64(nvl, name, val), ==, 0);
VERIFY0(nvlist_add_int64(nvl, name, val));
}
void
fnvlist_add_uint64(nvlist_t *nvl, const char *name, uint64_t val)
{
VERIFY3U(nvlist_add_uint64(nvl, name, val), ==, 0);
VERIFY0(nvlist_add_uint64(nvl, name, val));
}
void
fnvlist_add_string(nvlist_t *nvl, const char *name, const char *val)
{
VERIFY3U(nvlist_add_string(nvl, name, val), ==, 0);
VERIFY0(nvlist_add_string(nvl, name, val));
}
void
fnvlist_add_nvlist(nvlist_t *nvl, const char *name, nvlist_t *val)
{
VERIFY3U(nvlist_add_nvlist(nvl, name, val), ==, 0);
VERIFY0(nvlist_add_nvlist(nvl, name, val));
}
void
fnvlist_add_nvpair(nvlist_t *nvl, nvpair_t *pair)
{
VERIFY3U(nvlist_add_nvpair(nvl, pair), ==, 0);
VERIFY0(nvlist_add_nvpair(nvl, pair));
}
void
fnvlist_add_boolean_array(nvlist_t *nvl, const char *name,
boolean_t *val, uint_t n)
{
VERIFY3U(nvlist_add_boolean_array(nvl, name, val, n), ==, 0);
VERIFY0(nvlist_add_boolean_array(nvl, name, val, n));
}
void
fnvlist_add_byte_array(nvlist_t *nvl, const char *name, uchar_t *val, uint_t n)
{
VERIFY3U(nvlist_add_byte_array(nvl, name, val, n), ==, 0);
VERIFY0(nvlist_add_byte_array(nvl, name, val, n));
}
void
fnvlist_add_int8_array(nvlist_t *nvl, const char *name, int8_t *val, uint_t n)
{
VERIFY3U(nvlist_add_int8_array(nvl, name, val, n), ==, 0);
VERIFY0(nvlist_add_int8_array(nvl, name, val, n));
}
void
fnvlist_add_uint8_array(nvlist_t *nvl, const char *name, uint8_t *val, uint_t n)
{
VERIFY3U(nvlist_add_uint8_array(nvl, name, val, n), ==, 0);
VERIFY0(nvlist_add_uint8_array(nvl, name, val, n));
}
void
fnvlist_add_int16_array(nvlist_t *nvl, const char *name, int16_t *val, uint_t n)
{
VERIFY3U(nvlist_add_int16_array(nvl, name, val, n), ==, 0);
VERIFY0(nvlist_add_int16_array(nvl, name, val, n));
}
void
fnvlist_add_uint16_array(nvlist_t *nvl, const char *name,
uint16_t *val, uint_t n)
{
VERIFY3U(nvlist_add_uint16_array(nvl, name, val, n), ==, 0);
VERIFY0(nvlist_add_uint16_array(nvl, name, val, n));
}
void
fnvlist_add_int32_array(nvlist_t *nvl, const char *name, int32_t *val, uint_t n)
{
VERIFY3U(nvlist_add_int32_array(nvl, name, val, n), ==, 0);
VERIFY0(nvlist_add_int32_array(nvl, name, val, n));
}
void
fnvlist_add_uint32_array(nvlist_t *nvl, const char *name,
uint32_t *val, uint_t n)
{
VERIFY3U(nvlist_add_uint32_array(nvl, name, val, n), ==, 0);
VERIFY0(nvlist_add_uint32_array(nvl, name, val, n));
}
void
fnvlist_add_int64_array(nvlist_t *nvl, const char *name, int64_t *val, uint_t n)
{
VERIFY3U(nvlist_add_int64_array(nvl, name, val, n), ==, 0);
VERIFY0(nvlist_add_int64_array(nvl, name, val, n));
}
void
fnvlist_add_uint64_array(nvlist_t *nvl, const char *name,
uint64_t *val, uint_t n)
{
VERIFY3U(nvlist_add_uint64_array(nvl, name, val, n), ==, 0);
VERIFY0(nvlist_add_uint64_array(nvl, name, val, n));
}
void
fnvlist_add_string_array(nvlist_t *nvl, const char *name,
char * const *val, uint_t n)
{
VERIFY3U(nvlist_add_string_array(nvl, name, val, n), ==, 0);
VERIFY0(nvlist_add_string_array(nvl, name, val, n));
}
void
fnvlist_add_nvlist_array(nvlist_t *nvl, const char *name,
nvlist_t **val, uint_t n)
{
VERIFY3U(nvlist_add_nvlist_array(nvl, name, val, n), ==, 0);
VERIFY0(nvlist_add_nvlist_array(nvl, name, val, n));
}
void
fnvlist_remove(nvlist_t *nvl, const char *name)
{
VERIFY3U(nvlist_remove_all(nvl, name), ==, 0);
VERIFY0(nvlist_remove_all(nvl, name));
}
void
fnvlist_remove_nvpair(nvlist_t *nvl, nvpair_t *pair)
{
VERIFY3U(nvlist_remove_nvpair(nvl, pair), ==, 0);
VERIFY0(nvlist_remove_nvpair(nvl, pair));
}
nvpair_t *
fnvlist_lookup_nvpair(nvlist_t *nvl, const char *name)
{
nvpair_t *rv;
VERIFY3U(nvlist_lookup_nvpair(nvl, name, &rv), ==, 0);
VERIFY0(nvlist_lookup_nvpair(nvl, name, &rv));
return (rv);
}
@ -307,7 +307,7 @@ boolean_t
fnvlist_lookup_boolean_value(nvlist_t *nvl, const char *name)
{
boolean_t rv;
VERIFY3U(nvlist_lookup_boolean_value(nvl, name, &rv), ==, 0);
VERIFY0(nvlist_lookup_boolean_value(nvl, name, &rv));
return (rv);
}
@ -315,7 +315,7 @@ uchar_t
fnvlist_lookup_byte(nvlist_t *nvl, const char *name)
{
uchar_t rv;
VERIFY3U(nvlist_lookup_byte(nvl, name, &rv), ==, 0);
VERIFY0(nvlist_lookup_byte(nvl, name, &rv));
return (rv);
}
@ -323,7 +323,7 @@ int8_t
fnvlist_lookup_int8(nvlist_t *nvl, const char *name)
{
int8_t rv;
VERIFY3U(nvlist_lookup_int8(nvl, name, &rv), ==, 0);
VERIFY0(nvlist_lookup_int8(nvl, name, &rv));
return (rv);
}
@ -331,7 +331,7 @@ int16_t
fnvlist_lookup_int16(nvlist_t *nvl, const char *name)
{
int16_t rv;
VERIFY3U(nvlist_lookup_int16(nvl, name, &rv), ==, 0);
VERIFY0(nvlist_lookup_int16(nvl, name, &rv));
return (rv);
}
@ -339,7 +339,7 @@ int32_t
fnvlist_lookup_int32(nvlist_t *nvl, const char *name)
{
int32_t rv;
VERIFY3U(nvlist_lookup_int32(nvl, name, &rv), ==, 0);
VERIFY0(nvlist_lookup_int32(nvl, name, &rv));
return (rv);
}
@ -347,7 +347,7 @@ int64_t
fnvlist_lookup_int64(nvlist_t *nvl, const char *name)
{
int64_t rv;
VERIFY3U(nvlist_lookup_int64(nvl, name, &rv), ==, 0);
VERIFY0(nvlist_lookup_int64(nvl, name, &rv));
return (rv);
}
@ -355,7 +355,7 @@ uint8_t
fnvlist_lookup_uint8_t(nvlist_t *nvl, const char *name)
{
uint8_t rv;
VERIFY3U(nvlist_lookup_uint8(nvl, name, &rv), ==, 0);
VERIFY0(nvlist_lookup_uint8(nvl, name, &rv));
return (rv);
}
@ -363,7 +363,7 @@ uint16_t
fnvlist_lookup_uint16(nvlist_t *nvl, const char *name)
{
uint16_t rv;
VERIFY3U(nvlist_lookup_uint16(nvl, name, &rv), ==, 0);
VERIFY0(nvlist_lookup_uint16(nvl, name, &rv));
return (rv);
}
@ -371,7 +371,7 @@ uint32_t
fnvlist_lookup_uint32(nvlist_t *nvl, const char *name)
{
uint32_t rv;
VERIFY3U(nvlist_lookup_uint32(nvl, name, &rv), ==, 0);
VERIFY0(nvlist_lookup_uint32(nvl, name, &rv));
return (rv);
}
@ -379,7 +379,7 @@ uint64_t
fnvlist_lookup_uint64(nvlist_t *nvl, const char *name)
{
uint64_t rv;
VERIFY3U(nvlist_lookup_uint64(nvl, name, &rv), ==, 0);
VERIFY0(nvlist_lookup_uint64(nvl, name, &rv));
return (rv);
}
@ -387,7 +387,7 @@ char *
fnvlist_lookup_string(nvlist_t *nvl, const char *name)
{
char *rv;
VERIFY3U(nvlist_lookup_string(nvl, name, &rv), ==, 0);
VERIFY0(nvlist_lookup_string(nvl, name, &rv));
return (rv);
}
@ -395,7 +395,7 @@ nvlist_t *
fnvlist_lookup_nvlist(nvlist_t *nvl, const char *name)
{
nvlist_t *rv;
VERIFY3U(nvlist_lookup_nvlist(nvl, name, &rv), ==, 0);
VERIFY0(nvlist_lookup_nvlist(nvl, name, &rv));
return (rv);
}
@ -403,7 +403,7 @@ boolean_t
fnvpair_value_boolean_value(nvpair_t *nvp)
{
boolean_t rv;
VERIFY3U(nvpair_value_boolean_value(nvp, &rv), ==, 0);
VERIFY0(nvpair_value_boolean_value(nvp, &rv));
return (rv);
}
@ -411,7 +411,7 @@ uchar_t
fnvpair_value_byte(nvpair_t *nvp)
{
uchar_t rv;
VERIFY3U(nvpair_value_byte(nvp, &rv), ==, 0);
VERIFY0(nvpair_value_byte(nvp, &rv));
return (rv);
}
@ -419,7 +419,7 @@ int8_t
fnvpair_value_int8(nvpair_t *nvp)
{
int8_t rv;
VERIFY3U(nvpair_value_int8(nvp, &rv), ==, 0);
VERIFY0(nvpair_value_int8(nvp, &rv));
return (rv);
}
@ -427,7 +427,7 @@ int16_t
fnvpair_value_int16(nvpair_t *nvp)
{
int16_t rv;
VERIFY3U(nvpair_value_int16(nvp, &rv), ==, 0);
VERIFY0(nvpair_value_int16(nvp, &rv));
return (rv);
}
@ -435,7 +435,7 @@ int32_t
fnvpair_value_int32(nvpair_t *nvp)
{
int32_t rv;
VERIFY3U(nvpair_value_int32(nvp, &rv), ==, 0);
VERIFY0(nvpair_value_int32(nvp, &rv));
return (rv);
}
@ -443,7 +443,7 @@ int64_t
fnvpair_value_int64(nvpair_t *nvp)
{
int64_t rv;
VERIFY3U(nvpair_value_int64(nvp, &rv), ==, 0);
VERIFY0(nvpair_value_int64(nvp, &rv));
return (rv);
}
@ -451,7 +451,7 @@ uint8_t
fnvpair_value_uint8_t(nvpair_t *nvp)
{
uint8_t rv;
VERIFY3U(nvpair_value_uint8(nvp, &rv), ==, 0);
VERIFY0(nvpair_value_uint8(nvp, &rv));
return (rv);
}
@ -459,7 +459,7 @@ uint16_t
fnvpair_value_uint16(nvpair_t *nvp)
{
uint16_t rv;
VERIFY3U(nvpair_value_uint16(nvp, &rv), ==, 0);
VERIFY0(nvpair_value_uint16(nvp, &rv));
return (rv);
}
@ -467,7 +467,7 @@ uint32_t
fnvpair_value_uint32(nvpair_t *nvp)
{
uint32_t rv;
VERIFY3U(nvpair_value_uint32(nvp, &rv), ==, 0);
VERIFY0(nvpair_value_uint32(nvp, &rv));
return (rv);
}
@ -475,7 +475,7 @@ uint64_t
fnvpair_value_uint64(nvpair_t *nvp)
{
uint64_t rv;
VERIFY3U(nvpair_value_uint64(nvp, &rv), ==, 0);
VERIFY0(nvpair_value_uint64(nvp, &rv));
return (rv);
}
@ -483,7 +483,7 @@ char *
fnvpair_value_string(nvpair_t *nvp)
{
char *rv;
VERIFY3U(nvpair_value_string(nvp, &rv), ==, 0);
VERIFY0(nvpair_value_string(nvp, &rv));
return (rv);
}
@ -491,6 +491,6 @@ nvlist_t *
fnvpair_value_nvlist(nvpair_t *nvp)
{
nvlist_t *rv;
VERIFY3U(nvpair_value_nvlist(nvp, &rv), ==, 0);
VERIFY0(nvpair_value_nvlist(nvp, &rv));
return (rv);
}

View File

@ -36,7 +36,6 @@ extern "C" {
#define _SYS_RWLOCK_H
#define _SYS_CONDVAR_H
#define _SYS_SYSTM_H
#define _SYS_DEBUG_H
#define _SYS_T_LOCK_H
#define _SYS_VNODE_H
#define _SYS_VFS_H
@ -79,6 +78,7 @@ extern "C" {
#include <sys/sysevent/eventdefs.h>
#include <sys/sysevent/dev.h>
#include <sys/sunddi.h>
#include <sys/debug.h>
/*
* Debugging
@ -111,60 +111,6 @@ extern void vpanic(const char *, __va_list);
extern int aok;
/* This definition is copied from assert.h. */
#if defined(__STDC__)
#if __STDC_VERSION__ - 0 >= 199901L
#define zverify(EX) (void)((EX) || (aok) || \
(__assert_c99(#EX, __FILE__, __LINE__, __func__), 0))
#else
#define zverify(EX) (void)((EX) || (aok) || \
(__assert(#EX, __FILE__, __LINE__), 0))
#endif /* __STDC_VERSION__ - 0 >= 199901L */
#else
#define zverify(EX) (void)((EX) || (aok) || \
(_assert("EX", __FILE__, __LINE__), 0))
#endif /* __STDC__ */
#define VERIFY zverify
#define ASSERT zverify
#undef assert
#define assert zverify
extern void __assert(const char *, const char *, int);
#ifdef lint
#define VERIFY3_IMPL(x, y, z, t) if (x == z) ((void)0)
#else
/* BEGIN CSTYLED */
#define VERIFY3_IMPL(LEFT, OP, RIGHT, TYPE) do { \
const TYPE __left = (TYPE)(LEFT); \
const TYPE __right = (TYPE)(RIGHT); \
if (!(__left OP __right) && (!aok)) { \
char *__buf = alloca(256); \
(void) snprintf(__buf, 256, "%s %s %s (0x%llx %s 0x%llx)", \
#LEFT, #OP, #RIGHT, \
(u_longlong_t)__left, #OP, (u_longlong_t)__right); \
__assert(__buf, __FILE__, __LINE__); \
} \
_NOTE(CONSTCOND) } while (0)
/* END CSTYLED */
#endif /* lint */
#define VERIFY3S(x, y, z) VERIFY3_IMPL(x, y, z, int64_t)
#define VERIFY3U(x, y, z) VERIFY3_IMPL(x, y, z, uint64_t)
#define VERIFY3P(x, y, z) VERIFY3_IMPL(x, y, z, uintptr_t)
#ifdef NDEBUG
#define ASSERT3S(x, y, z) ((void)0)
#define ASSERT3U(x, y, z) ((void)0)
#define ASSERT3P(x, y, z) ((void)0)
#else
#define ASSERT3S(x, y, z) VERIFY3S(x, y, z)
#define ASSERT3U(x, y, z) VERIFY3U(x, y, z)
#define ASSERT3P(x, y, z) VERIFY3P(x, y, z)
#endif
/*
* DTrace SDT probes have different signatures in userland than they do in
* kernel. If they're being used in kernel code, re-define them out of

View File

@ -1,12 +1,31 @@
'\" te
'\" t
.\"
.\" CDDL HEADER START
.\"
.\" The contents of this file are subject to the terms of the
.\" Common Development and Distribution License (the "License").
.\" You may not use this file except in compliance with the License.
.\"
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
.\" or http://www.opensolaris.org/os/licensing.
.\" See the License for the specific language governing permissions
.\" and limitations under the License.
.\"
.\" When distributing Covered Code, include this CDDL HEADER in each
.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
.\" If applicable, add the following below this CDDL HEADER, with the
.\" fields enclosed by brackets "[]" replaced with your own identifying
.\" information: Portions Copyright [yyyy] [name of copyright owner]
.\"
.\" CDDL HEADER END
.\"
.\"
.\" Copyright (c) 2009 Sun Microsystems, Inc. All Rights Reserved.
.\" Copyright (c) 2012 by Delphix. All rights reserved.
.\" Copyright (c) 2012 Nexenta Systems, Inc. All Rights Reserved.
.\" Copyright (c) 2012, Joyent, Inc. All rights reserved.
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
.\" See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with
.\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.\" Copyright 2011 Joshua M. Clulow <josh@sysmgr.org>
.\" Copyright (c) 2012 by Delphix. All rights reserved.
.\" Copyright (c) 2012, Joyent, Inc. All rights reserved.
.\" Copyright 2012 Nexenta Systems, Inc. All Rights Reserved.
.\"
.TH ZFS 1M "Aug 16, 2012"
.SH NAME
zfs \- configures ZFS file systems
@ -107,14 +126,14 @@ zfs \- configures ZFS file systems
.LP
.nf
\fBzfs\fR \fBuserspace\fR [\fB-niHp\fR] [\fB-o\fR \fIfield\fR[,...]] [\fB-sS\fR \fIfield\fR] ...
[\fB-t\fR \fItype\fR[,...]] \fIfilesystem\fR|\fIsnapshot\fR
\fBzfs\fR \fBuserspace\fR [\fB-Hinp\fR] [\fB-o\fR \fIfield\fR[,...]] [\fB-s\fR \fIfield\fR] ...
[\fB-S\fR \fIfield\fR] ... [\fB-t\fR \fItype\fR[,...]] \fIfilesystem\fR|\fIsnapshot\fR
.fi
.LP
.nf
\fBzfs\fR \fBgroupspace\fR [\fB-niHp\fR] [\fB-o\fR \fIfield\fR[,...]] [\fB-sS\fR \fIfield\fR] ...
[\fB-t\fR \fItype\fR[,...]] \fIfilesystem\fR|\fIsnapshot\fR
\fBzfs\fR \fBgroupspace\fR [\fB-Hinp\fR] [\fB-o\fR \fIfield\fR[,...]] [\fB-s\fR \fIfield\fR] ...
[\fB-S\fR \fIfield\fR] ... [\fB-t\fR \fItype\fR[,...]] \fIfilesystem\fR|\fIsnapshot\fR
.fi
.LP
@ -2407,9 +2426,10 @@ supported by this software.
.sp
.ne 2
.na
\fB\fBzfs userspace\fR [\fB-niHp\fR] [\fB-o\fR \fIfield\fR[,...]] [\fB-sS\fR
\fIfield\fR]... [\fB-t\fR \fItype\fR [,...]] \fIfilesystem\fR |
\fIsnapshot\fR\fR
\fBzfs\fR \fBuserspace\fR [\fB-Hinp\fR] [\fB-o\fR \fIfield\fR[,...]]
[\fB-s\fR \fIfield\fR] ...
[\fB-S\fR \fIfield\fR] ...
[\fB-t\fR \fItype\fR[,...]] \fIfilesystem\fR|\fIsnapshot\fR
.ad
.sp .6
.RS 4n
@ -2443,7 +2463,7 @@ Do not print headers, use tab-delimited output.
.ad
.sp .6
.RS 4n
Use exact (parseable) numeric output.
Use exact (parsable) numeric output.
.RE
.sp
@ -2453,8 +2473,8 @@ Use exact (parseable) numeric output.
.ad
.sp .6
.RS 4n
Display only the specified fields from the following set,
\fBtype,name,used,quota\fR.The default is to display all fields.
Display only the specified fields from the following
set: \fBtype, name, used, quota\fR. The default is to display all fields.
.RE
.sp
@ -2486,12 +2506,10 @@ Sort by this field in reverse order. See \fB-s\fR.
.ad
.sp .6
.RS 4n
Print only the specified types from the following set,
\fBall,posixuser,smbuser,posixgroup,smbgroup\fR.
.sp
The default is \fB-t posixuser,smbuser\fR
.sp
The default can be changed to include group types.
Print only the specified types from the following
set: \fBall, posixuser, smbuser, posixgroup, smbgroup\fR. The default
is \fB-t posixuser,smbuser\fR. The default can be changed to include group
types.
.RE
.sp
@ -2506,7 +2524,7 @@ Normal POSIX interfaces (for example, \fBstat\fR(2), \fBls\fR \fB-l\fR) perform
this translation, so the \fB-i\fR option allows the output from \fBzfs
userspace\fR to be compared directly with those utilities. However, \fB-i\fR
may lead to confusion if some files were created by an SMB user before a
SMB-to-POSIX name mapping was established. In such a case, some files are owned
SMB-to-POSIX name mapping was established. In such a case, some files will be owned
by the SMB entity and some by the POSIX entity. However, the \fB-i\fR option
will report that the POSIX entity has the total usage and quota for both.
.RE
@ -2516,23 +2534,16 @@ will report that the POSIX entity has the total usage and quota for both.
.sp
.ne 2
.na
\fB\fBzfs groupspace\fR [\fB-niHp\fR] [\fB-o\fR \fIfield\fR[,...]] [\fB-sS\fR
\fIfield\fR]... [\fB-t\fR \fItype\fR [,...]] \fIfilesystem\fR |
\fIsnapshot\fR\fR
\fBzfs\fR \fBgroupspace\fR [\fB-Hinp\fR] [\fB-o\fR \fIfield\fR[,...]]
[\fB-s\fR \fIfield\fR] ...
[\fB-S\fR \fIfield\fR] ...
[\fB-t\fR \fItype\fR[,...]] \fIfilesystem\fR|\fIsnapshot\fR
.ad
.sp .6
.RS 4n
Displays space consumed by, and quotas on, each group in the specified
filesystem or snapshot. This subcommand is identical to \fBzfs userspace\fR,
except that the default types to display are \fB-t posixgroup,smbgroup\fR.
.sp
.in +2
.nf
-
.fi
.in -2
.sp
.RE
.sp

View File

@ -1064,7 +1064,7 @@ add_reference(arc_buf_hdr_t *ab, kmutex_t *hash_lock, void *tag)
ASSERT(list_link_active(&ab->b_arc_node));
list_remove(list, ab);
if (GHOST_STATE(ab->b_state)) {
ASSERT3U(ab->b_datacnt, ==, 0);
ASSERT0(ab->b_datacnt);
ASSERT3P(ab->b_buf, ==, NULL);
delta = ab->b_size;
}
@ -1691,7 +1691,7 @@ arc_evict(arc_state_t *state, uint64_t spa, int64_t bytes, boolean_t recycle,
hash_lock = HDR_LOCK(ab);
have_lock = MUTEX_HELD(hash_lock);
if (have_lock || mutex_tryenter(hash_lock)) {
ASSERT3U(refcount_count(&ab->b_refcnt), ==, 0);
ASSERT0(refcount_count(&ab->b_refcnt));
ASSERT(ab->b_datacnt > 0);
while (ab->b_buf) {
arc_buf_t *buf = ab->b_buf;
@ -2519,7 +2519,7 @@ arc_access(arc_buf_hdr_t *buf, kmutex_t *hash_lock)
* This is a prefetch access...
* move this block back to the MRU state.
*/
ASSERT3U(refcount_count(&buf->b_refcnt), ==, 0);
ASSERT0(refcount_count(&buf->b_refcnt));
new_state = arc_mru;
}
@ -2861,7 +2861,7 @@ arc_read_nolock(zio_t *pio, spa_t *spa, const blkptr_t *bp,
/* this block is in the ghost cache */
ASSERT(GHOST_STATE(hdr->b_state));
ASSERT(!HDR_IO_IN_PROGRESS(hdr));
ASSERT3U(refcount_count(&hdr->b_refcnt), ==, 0);
ASSERT0(refcount_count(&hdr->b_refcnt));
ASSERT(hdr->b_buf == NULL);
/* if this is a prefetch, we don't have a reference */
@ -4436,7 +4436,7 @@ l2arc_write_buffers(spa_t *spa, l2arc_dev_t *dev, uint64_t target_sz)
mutex_exit(&l2arc_buflist_mtx);
if (pio == NULL) {
ASSERT3U(write_sz, ==, 0);
ASSERT0(write_sz);
kmem_cache_free(hdr_cache, head);
return (0);
}

View File

@ -43,7 +43,7 @@ bpobj_alloc_empty(objset_t *os, int blocksize, dmu_tx_t *tx)
if (spa_feature_is_enabled(spa, empty_bpobj_feat)) {
if (!spa_feature_is_active(spa, empty_bpobj_feat)) {
ASSERT3U(dp->dp_empty_bpobj, ==, 0);
ASSERT0(dp->dp_empty_bpobj);
dp->dp_empty_bpobj =
bpobj_alloc(os, SPA_MAXBLOCKSIZE, tx);
VERIFY(zap_add(os,

View File

@ -94,9 +94,9 @@ bptree_free(objset_t *os, uint64_t obj, dmu_tx_t *tx)
VERIFY3U(0, ==, dmu_bonus_hold(os, obj, FTAG, &db));
bt = db->db_data;
ASSERT3U(bt->bt_begin, ==, bt->bt_end);
ASSERT3U(bt->bt_bytes, ==, 0);
ASSERT3U(bt->bt_comp, ==, 0);
ASSERT3U(bt->bt_uncomp, ==, 0);
ASSERT0(bt->bt_bytes);
ASSERT0(bt->bt_comp);
ASSERT0(bt->bt_uncomp);
dmu_buf_rele(db, FTAG);
return (dmu_object_free(os, obj, tx));
@ -198,7 +198,7 @@ bptree_iterate(objset_t *os, uint64_t obj, boolean_t free, bptree_itor_t func,
/* save bookmark for future resume */
ASSERT3U(bte.be_zb.zb_objset, ==,
ZB_DESTROYED_OBJSET);
ASSERT3U(bte.be_zb.zb_level, ==, 0);
ASSERT0(bte.be_zb.zb_level);
dmu_write(os, obj, i * sizeof (bte),
sizeof (bte), &bte, tx);
break;
@ -214,9 +214,9 @@ bptree_iterate(objset_t *os, uint64_t obj, boolean_t free, bptree_itor_t func,
/* if all blocks are free there should be no used space */
if (ba.ba_phys->bt_begin == ba.ba_phys->bt_end) {
ASSERT3U(ba.ba_phys->bt_bytes, ==, 0);
ASSERT3U(ba.ba_phys->bt_comp, ==, 0);
ASSERT3U(ba.ba_phys->bt_uncomp, ==, 0);
ASSERT0(ba.ba_phys->bt_bytes);
ASSERT0(ba.ba_phys->bt_comp);
ASSERT0(ba.ba_phys->bt_uncomp);
}
dmu_buf_rele(db, FTAG);

View File

@ -328,7 +328,7 @@ dbuf_verify(dmu_buf_impl_t *db)
} else if (db->db_blkid == DMU_SPILL_BLKID) {
ASSERT(dn != NULL);
ASSERT3U(db->db.db_size, >=, dn->dn_bonuslen);
ASSERT3U(db->db.db_offset, ==, 0);
ASSERT0(db->db.db_offset);
} else {
ASSERT3U(db->db.db_offset, ==, db->db_blkid * db->db.db_size);
}
@ -2308,7 +2308,7 @@ dbuf_sync_leaf(dbuf_dirty_record_t *dr, dmu_tx_t *tx)
dbuf_dirty_record_t **drp;
ASSERT(*datap != NULL);
ASSERT3U(db->db_level, ==, 0);
ASSERT0(db->db_level);
ASSERT3U(dn->dn_phys->dn_bonuslen, <=, DN_MAX_BONUSLEN);
bcopy(*datap, DN_BONUS(dn->dn_phys), dn->dn_phys->dn_bonuslen);
DB_DNODE_EXIT(db);
@ -2507,7 +2507,7 @@ dbuf_write_done(zio_t *zio, arc_buf_t *buf, void *vdb)
uint64_t txg = zio->io_txg;
dbuf_dirty_record_t **drp, *dr;
ASSERT3U(zio->io_error, ==, 0);
ASSERT0(zio->io_error);
ASSERT(db->db_blkptr == bp);
if (zio->io_flags & ZIO_FLAG_IO_REWRITE) {

View File

@ -57,7 +57,7 @@ dump_bytes(dmu_sendarg_t *dsp, void *buf, int len)
{
dsl_dataset_t *ds = dsp->dsa_os->os_dsl_dataset;
ssize_t resid; /* have to get resid to get detailed errno */
ASSERT3U(len % 8, ==, 0);
ASSERT0(len % 8);
fletcher_4_incremental_native(buf, len, &dsp->dsa_zc);
dsp->dsa_err = vn_rdwr(UIO_WRITE, dsp->dsa_vp,
@ -961,7 +961,7 @@ restore_read(struct restorearg *ra, int len)
int done = 0;
/* some things will require 8-byte alignment, so everything must */
ASSERT3U(len % 8, ==, 0);
ASSERT0(len % 8);
while (done < len) {
ssize_t resid;
@ -1638,7 +1638,7 @@ dmu_recv_existing_end(dmu_recv_cookie_t *drc)
(void) add_ds_to_guidmap(drc->drc_guid_to_ds_map, ds);
dsl_dataset_disown(ds, dmu_recv_tag);
myerr = dsl_dataset_destroy(drc->drc_real_ds, dmu_recv_tag, B_FALSE);
ASSERT3U(myerr, ==, 0);
ASSERT0(myerr);
return (err);
}

View File

@ -176,7 +176,7 @@ static void
traverse_pause(traverse_data_t *td, const zbookmark_t *zb)
{
ASSERT(td->td_resume != NULL);
ASSERT3U(zb->zb_level, ==, 0);
ASSERT0(zb->zb_level);
bcopy(zb, td->td_resume, sizeof (*td->td_resume));
}

View File

@ -911,7 +911,7 @@ dmu_tx_try_assign(dmu_tx_t *tx, uint64_t txg_how)
uint64_t memory, asize, fsize, usize;
uint64_t towrite, tofree, tooverwrite, tounref, tohold, fudge;
ASSERT3U(tx->tx_txg, ==, 0);
ASSERT0(tx->tx_txg);
if (tx->tx_err)
return (tx->tx_err);

View File

@ -137,32 +137,32 @@ dnode_dest(void *arg, void *unused)
ASSERT(!list_link_active(&dn->dn_dirty_link[i]));
avl_destroy(&dn->dn_ranges[i]);
list_destroy(&dn->dn_dirty_records[i]);
ASSERT3U(dn->dn_next_nblkptr[i], ==, 0);
ASSERT3U(dn->dn_next_nlevels[i], ==, 0);
ASSERT3U(dn->dn_next_indblkshift[i], ==, 0);
ASSERT3U(dn->dn_next_bonustype[i], ==, 0);
ASSERT3U(dn->dn_rm_spillblk[i], ==, 0);
ASSERT3U(dn->dn_next_bonuslen[i], ==, 0);
ASSERT3U(dn->dn_next_blksz[i], ==, 0);
ASSERT0(dn->dn_next_nblkptr[i]);
ASSERT0(dn->dn_next_nlevels[i]);
ASSERT0(dn->dn_next_indblkshift[i]);
ASSERT0(dn->dn_next_bonustype[i]);
ASSERT0(dn->dn_rm_spillblk[i]);
ASSERT0(dn->dn_next_bonuslen[i]);
ASSERT0(dn->dn_next_blksz[i]);
}
ASSERT3U(dn->dn_allocated_txg, ==, 0);
ASSERT3U(dn->dn_free_txg, ==, 0);
ASSERT3U(dn->dn_assigned_txg, ==, 0);
ASSERT3U(dn->dn_dirtyctx, ==, 0);
ASSERT0(dn->dn_allocated_txg);
ASSERT0(dn->dn_free_txg);
ASSERT0(dn->dn_assigned_txg);
ASSERT0(dn->dn_dirtyctx);
ASSERT3P(dn->dn_dirtyctx_firstset, ==, NULL);
ASSERT3P(dn->dn_bonus, ==, NULL);
ASSERT(!dn->dn_have_spill);
ASSERT3P(dn->dn_zio, ==, NULL);
ASSERT3U(dn->dn_oldused, ==, 0);
ASSERT3U(dn->dn_oldflags, ==, 0);
ASSERT3U(dn->dn_olduid, ==, 0);
ASSERT3U(dn->dn_oldgid, ==, 0);
ASSERT3U(dn->dn_newuid, ==, 0);
ASSERT3U(dn->dn_newgid, ==, 0);
ASSERT3U(dn->dn_id_flags, ==, 0);
ASSERT0(dn->dn_oldused);
ASSERT0(dn->dn_oldflags);
ASSERT0(dn->dn_olduid);
ASSERT0(dn->dn_oldgid);
ASSERT0(dn->dn_newuid);
ASSERT0(dn->dn_newgid);
ASSERT0(dn->dn_id_flags);
ASSERT3U(dn->dn_dbufs_count, ==, 0);
ASSERT0(dn->dn_dbufs_count);
list_destroy(&dn->dn_dbufs);
}
@ -361,7 +361,7 @@ dnode_rm_spill(dnode_t *dn, dmu_tx_t *tx)
static void
dnode_setdblksz(dnode_t *dn, int size)
{
ASSERT3U(P2PHASE(size, SPA_MINBLOCKSIZE), ==, 0);
ASSERT0(P2PHASE(size, SPA_MINBLOCKSIZE));
ASSERT3U(size, <=, SPA_MAXBLOCKSIZE);
ASSERT3U(size, >=, SPA_MINBLOCKSIZE);
ASSERT3U(size >> SPA_MINBLOCKSHIFT, <,
@ -506,24 +506,24 @@ dnode_allocate(dnode_t *dn, dmu_object_type_t ot, int blocksize, int ibs,
ASSERT(DMU_OT_IS_VALID(bonustype));
ASSERT3U(bonuslen, <=, DN_MAX_BONUSLEN);
ASSERT(dn->dn_type == DMU_OT_NONE);
ASSERT3U(dn->dn_maxblkid, ==, 0);
ASSERT3U(dn->dn_allocated_txg, ==, 0);
ASSERT3U(dn->dn_assigned_txg, ==, 0);
ASSERT0(dn->dn_maxblkid);
ASSERT0(dn->dn_allocated_txg);
ASSERT0(dn->dn_assigned_txg);
ASSERT(refcount_is_zero(&dn->dn_tx_holds));
ASSERT3U(refcount_count(&dn->dn_holds), <=, 1);
ASSERT3P(list_head(&dn->dn_dbufs), ==, NULL);
for (i = 0; i < TXG_SIZE; i++) {
ASSERT3U(dn->dn_next_nblkptr[i], ==, 0);
ASSERT3U(dn->dn_next_nlevels[i], ==, 0);
ASSERT3U(dn->dn_next_indblkshift[i], ==, 0);
ASSERT3U(dn->dn_next_bonuslen[i], ==, 0);
ASSERT3U(dn->dn_next_bonustype[i], ==, 0);
ASSERT3U(dn->dn_rm_spillblk[i], ==, 0);
ASSERT3U(dn->dn_next_blksz[i], ==, 0);
ASSERT0(dn->dn_next_nblkptr[i]);
ASSERT0(dn->dn_next_nlevels[i]);
ASSERT0(dn->dn_next_indblkshift[i]);
ASSERT0(dn->dn_next_bonuslen[i]);
ASSERT0(dn->dn_next_bonustype[i]);
ASSERT0(dn->dn_rm_spillblk[i]);
ASSERT0(dn->dn_next_blksz[i]);
ASSERT(!list_link_active(&dn->dn_dirty_link[i]));
ASSERT3P(list_head(&dn->dn_dirty_records[i]), ==, NULL);
ASSERT3U(avl_numnodes(&dn->dn_ranges[i]), ==, 0);
ASSERT0(avl_numnodes(&dn->dn_ranges[i]));
}
dn->dn_type = ot;
@ -565,7 +565,7 @@ dnode_reallocate(dnode_t *dn, dmu_object_type_t ot, int blocksize,
ASSERT3U(blocksize, >=, SPA_MINBLOCKSIZE);
ASSERT3U(blocksize, <=, SPA_MAXBLOCKSIZE);
ASSERT3U(blocksize % SPA_MINBLOCKSIZE, ==, 0);
ASSERT0(blocksize % SPA_MINBLOCKSIZE);
ASSERT(dn->dn_object != DMU_META_DNODE_OBJECT || dmu_tx_private_ok(tx));
ASSERT(tx->tx_txg != 0);
ASSERT((bonustype == DMU_OT_NONE && bonuslen == 0) ||
@ -1235,9 +1235,9 @@ dnode_setdirty(dnode_t *dn, dmu_tx_t *tx)
ASSERT(!refcount_is_zero(&dn->dn_holds) || list_head(&dn->dn_dbufs));
ASSERT(dn->dn_datablksz != 0);
ASSERT3U(dn->dn_next_bonuslen[txg&TXG_MASK], ==, 0);
ASSERT3U(dn->dn_next_blksz[txg&TXG_MASK], ==, 0);
ASSERT3U(dn->dn_next_bonustype[txg&TXG_MASK], ==, 0);
ASSERT0(dn->dn_next_bonuslen[txg&TXG_MASK]);
ASSERT0(dn->dn_next_blksz[txg&TXG_MASK]);
ASSERT0(dn->dn_next_bonustype[txg&TXG_MASK]);
dprintf_ds(os->os_dsl_dataset, "obj=%llu txg=%llu\n",
dn->dn_object, txg);
@ -1587,7 +1587,7 @@ dnode_free_range(dnode_t *dn, uint64_t off, uint64_t len, dmu_tx_t *tx)
else
tail = P2PHASE(len, blksz);
ASSERT3U(P2PHASE(off, blksz), ==, 0);
ASSERT0(P2PHASE(off, blksz));
/* zero out any partial block data at the end of the range */
if (tail) {
if (len < tail)
@ -1769,7 +1769,7 @@ dnode_diduse_space(dnode_t *dn, int64_t delta)
space += delta;
if (spa_version(dn->dn_objset->os_spa) < SPA_VERSION_DNODE_BYTES) {
ASSERT((dn->dn_phys->dn_flags & DNODE_FLAG_USED_BYTES) == 0);
ASSERT3U(P2PHASE(space, 1<<DEV_BSHIFT), ==, 0);
ASSERT0(P2PHASE(space, 1<<DEV_BSHIFT));
dn->dn_phys->dn_used = space >> DEV_BSHIFT;
} else {
dn->dn_phys->dn_used = space;

View File

@ -274,7 +274,7 @@ free_children(dmu_buf_impl_t *db, uint64_t blkid, uint64_t nblks, int trunc,
continue;
rw_enter(&dn->dn_struct_rwlock, RW_READER);
err = dbuf_hold_impl(dn, db->db_level-1, i, TRUE, FTAG, &subdb);
ASSERT3U(err, ==, 0);
ASSERT0(err);
rw_exit(&dn->dn_struct_rwlock);
if (free_children(subdb, blkid, nblks, trunc, tx) == ALL) {
@ -294,7 +294,7 @@ free_children(dmu_buf_impl_t *db, uint64_t blkid, uint64_t nblks, int trunc,
continue;
else if (i == end && !trunc)
continue;
ASSERT3U(bp->blk_birth, ==, 0);
ASSERT0(bp->blk_birth);
}
#endif
ASSERT(all || blocks_freed == 0 || db->db_last_dirty);
@ -350,7 +350,7 @@ dnode_sync_free_range(dnode_t *dn, uint64_t blkid, uint64_t nblks, dmu_tx_t *tx)
continue;
rw_enter(&dn->dn_struct_rwlock, RW_READER);
err = dbuf_hold_impl(dn, dnlevel-1, i, TRUE, FTAG, &db);
ASSERT3U(err, ==, 0);
ASSERT0(err);
rw_exit(&dn->dn_struct_rwlock);
if (free_children(db, blkid, nblks, trunc, tx) == ALL) {
@ -471,7 +471,7 @@ dnode_sync_free(dnode_t *dn, dmu_tx_t *tx)
* Our contents should have been freed in dnode_sync() by the
* free range record inserted by the caller of dnode_free().
*/
ASSERT3U(DN_USED_BYTES(dn->dn_phys), ==, 0);
ASSERT0(DN_USED_BYTES(dn->dn_phys));
ASSERT(BP_IS_HOLE(dn->dn_phys->dn_blkptr));
dnode_undirty_dbufs(&dn->dn_dirty_records[txgoff]);

View File

@ -1498,7 +1498,7 @@ remove_from_next_clones(dsl_dataset_t *ds, uint64_t obj, dmu_tx_t *tx)
* remove this one.
*/
if (err != ENOENT) {
VERIFY3U(err, ==, 0);
VERIFY0(err);
}
ASSERT3U(0, ==, zap_count(mos, ds->ds_phys->ds_next_clones_obj,
&count));
@ -1585,7 +1585,7 @@ process_old_deadlist(dsl_dataset_t *ds, dsl_dataset_t *ds_prev,
poa.pio = zio_root(dp->dp_spa, NULL, NULL, ZIO_FLAG_MUSTSUCCEED);
VERIFY3U(0, ==, bpobj_iterate(&ds_next->ds_deadlist.dl_bpobj,
process_old_cb, &poa, tx));
VERIFY3U(zio_wait(poa.pio), ==, 0);
VERIFY0(zio_wait(poa.pio));
ASSERT3U(poa.used, ==, ds->ds_phys->ds_unique_bytes);
/* change snapused */
@ -1620,7 +1620,7 @@ old_synchronous_dataset_destroy(dsl_dataset_t *ds, dmu_tx_t *tx)
err = traverse_dataset(ds,
ds->ds_phys->ds_prev_snap_txg, TRAVERSE_POST,
kill_blkptr, &ka);
ASSERT3U(err, ==, 0);
ASSERT0(err);
ASSERT(!DS_UNIQUE_IS_ACCURATE(ds) || ds->ds_phys->ds_unique_bytes == 0);
return (err);
@ -1676,7 +1676,7 @@ dsl_dataset_destroy_sync(void *arg1, void *tag, dmu_tx_t *tx)
psa.psa_effective_value = 0; /* predict default value */
dsl_dataset_set_reservation_sync(ds, &psa, tx);
ASSERT3U(ds->ds_reserved, ==, 0);
ASSERT0(ds->ds_reserved);
}
ASSERT(RW_WRITE_HELD(&dp->dp_config_rwlock));
@ -1943,7 +1943,7 @@ dsl_dataset_destroy_sync(void *arg1, void *tag, dmu_tx_t *tx)
err = dsl_dataset_snap_lookup(ds_head,
ds->ds_snapname, &val);
ASSERT3U(err, ==, 0);
ASSERT0(err);
ASSERT3U(val, ==, obj);
}
#endif
@ -2437,13 +2437,13 @@ dsl_dataset_snapshot_rename_sync(void *arg1, void *arg2, dmu_tx_t *tx)
VERIFY(0 == dsl_dataset_get_snapname(ds));
err = dsl_dataset_snap_remove(hds, ds->ds_snapname, tx);
ASSERT3U(err, ==, 0);
ASSERT0(err);
mutex_enter(&ds->ds_lock);
(void) strcpy(ds->ds_snapname, newsnapname);
mutex_exit(&ds->ds_lock);
err = zap_add(mos, hds->ds_phys->ds_snapnames_zapobj,
ds->ds_snapname, 8, 1, &ds->ds_object, tx);
ASSERT3U(err, ==, 0);
ASSERT0(err);
spa_history_log_internal_ds(ds, "rename", tx,
"-> @%s", newsnapname);
@ -2897,7 +2897,7 @@ dsl_dataset_promote_sync(void *arg1, void *arg2, dmu_tx_t *tx)
zap_cursor_fini(&zc);
}
ASSERT3U(dsl_prop_numcb(ds), ==, 0);
ASSERT0(dsl_prop_numcb(ds));
}
/*

View File

@ -492,10 +492,10 @@ dsl_dir_destroy_sync(void *arg1, void *tag, dmu_tx_t *tx)
*/
dsl_dir_set_reservation_sync_impl(dd, 0, tx);
ASSERT3U(dd->dd_phys->dd_used_bytes, ==, 0);
ASSERT3U(dd->dd_phys->dd_reserved, ==, 0);
ASSERT0(dd->dd_phys->dd_used_bytes);
ASSERT0(dd->dd_phys->dd_reserved);
for (t = 0; t < DD_USED_NUM; t++)
ASSERT3U(dd->dd_phys->dd_used_breakdown[t], ==, 0);
ASSERT0(dd->dd_phys->dd_used_breakdown[t]);
VERIFY(0 == zap_destroy(mos, dd->dd_phys->dd_child_dir_zapobj, tx));
VERIFY(0 == zap_destroy(mos, dd->dd_phys->dd_props_zapobj, tx));
@ -584,7 +584,7 @@ dsl_dir_sync(dsl_dir_t *dd, dmu_tx_t *tx)
ASSERT(dmu_tx_is_syncing(tx));
mutex_enter(&dd->dd_lock);
ASSERT3U(dd->dd_tempreserved[tx->tx_txg&TXG_MASK], ==, 0);
ASSERT0(dd->dd_tempreserved[tx->tx_txg&TXG_MASK]);
dprintf_dd(dd, "txg=%llu towrite=%lluK\n", tx->tx_txg,
dd->dd_space_towrite[tx->tx_txg&TXG_MASK] / 1024);
dd->dd_space_towrite[tx->tx_txg&TXG_MASK] = 0;
@ -1326,7 +1326,7 @@ dsl_dir_rename_sync(void *arg1, void *arg2, dmu_tx_t *tx)
/* remove from old parent zapobj */
err = zap_remove(mos, dd->dd_parent->dd_phys->dd_child_dir_zapobj,
dd->dd_myname, tx);
ASSERT3U(err, ==, 0);
ASSERT0(err);
(void) strcpy(dd->dd_myname, ra->mynewname);
dsl_dir_close(dd->dd_parent, dd);
@ -1337,7 +1337,7 @@ dsl_dir_rename_sync(void *arg1, void *arg2, dmu_tx_t *tx)
/* add to new parent zapobj */
err = zap_add(mos, ra->newparent->dd_phys->dd_child_dir_zapobj,
dd->dd_myname, 8, 1, &dd->dd_object, tx);
ASSERT3U(err, ==, 0);
ASSERT0(err);
}

View File

@ -264,7 +264,7 @@ dsl_pool_create(spa_t *spa, nvlist_t *zplprops, uint64_t txg)
/* create the pool directory */
err = zap_create_claim(dp->dp_meta_objset, DMU_POOL_DIRECTORY_OBJECT,
DMU_OT_OBJECT_DIRECTORY, DMU_OT_NONE, 0, tx);
ASSERT3U(err, ==, 0);
ASSERT0(err);
/* Initialize scan structures */
VERIFY3U(0, ==, dsl_scan_init(dp, txg));

View File

@ -163,7 +163,7 @@ dsl_sync_task_group_sync(dsl_sync_task_group_t *dstg, dmu_tx_t *tx)
dsl_pool_t *dp = dstg->dstg_pool;
uint64_t quota, used;
ASSERT3U(dstg->dstg_err, ==, 0);
ASSERT0(dstg->dstg_err);
/*
* Check for sufficient space. We just check against what's

View File

@ -769,7 +769,7 @@ metaslab_fini(metaslab_t *msp)
for (int t = 0; t < TXG_DEFER_SIZE; t++)
space_map_destroy(&msp->ms_defermap[t]);
ASSERT3S(msp->ms_deferspace, ==, 0);
ASSERT0(msp->ms_deferspace);
mutex_exit(&msp->ms_lock);
mutex_destroy(&msp->ms_lock);

View File

@ -714,7 +714,7 @@ spa_change_guid_sync(void *arg1, void *arg2, dmu_tx_t *tx)
vdev_config_dirty(rvd);
spa_config_exit(spa, SCL_STATE, FTAG);
spa_history_log_internal(spa, "guid change", tx, "old=%llu new=%llu",
spa_history_log_internal(spa, "guid change", tx, "old=%lld new=%lld",
oldguid, *newguid);
}
@ -5027,7 +5027,7 @@ spa_vdev_remove_evacuate(spa_t *spa, vdev_t *vd)
* The evacuation succeeded. Remove any remaining MOS metadata
* associated with this vdev, and wait for these changes to sync.
*/
ASSERT3U(vd->vdev_stat.vs_alloc, ==, 0);
ASSERT0(vd->vdev_stat.vs_alloc);
txg = spa_vdev_config_enter(spa);
vd->vdev_removing = B_TRUE;
vdev_dirty(vd, 0, NULL, txg);
@ -6019,7 +6019,7 @@ spa_sync(spa_t *spa, uint64_t txg)
zio_t *zio = zio_root(spa, NULL, NULL, 0);
VERIFY3U(bpobj_iterate(defer_bpo,
spa_free_sync_cb, zio, tx), ==, 0);
VERIFY3U(zio_wait(zio), ==, 0);
VERIFY0(zio_wait(zio));
}
/*

View File

@ -22,6 +22,9 @@
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
* Copyright (c) 2012 by Delphix. All rights reserved.
*/
#include <sys/zfs_context.h>
#include <sys/spa.h>
@ -73,7 +76,7 @@ void
space_map_destroy(space_map_t *sm)
{
ASSERT(!sm->sm_loaded && !sm->sm_loading);
VERIFY3U(sm->sm_space, ==, 0);
VERIFY0(sm->sm_space);
avl_destroy(&sm->sm_root);
cv_destroy(&sm->sm_load_cv);
}
@ -286,7 +289,7 @@ space_map_load(space_map_t *sm, space_map_ops_t *ops, uint8_t maptype,
space = smo->smo_alloc;
ASSERT(sm->sm_ops == NULL);
VERIFY3U(sm->sm_space, ==, 0);
VERIFY0(sm->sm_space);
if (maptype == SM_FREE) {
space_map_add(sm, sm->sm_start, sm->sm_size);
@ -475,7 +478,7 @@ space_map_sync(space_map_t *sm, uint8_t maptype,
zio_buf_free(entry_map, bufsize);
VERIFY3U(sm->sm_space, ==, 0);
VERIFY0(sm->sm_space);
}
void

View File

@ -592,9 +592,9 @@ vdev_free(vdev_t *vd)
metaslab_group_destroy(vd->vdev_mg);
}
ASSERT3U(vd->vdev_stat.vs_space, ==, 0);
ASSERT3U(vd->vdev_stat.vs_dspace, ==, 0);
ASSERT3U(vd->vdev_stat.vs_alloc, ==, 0);
ASSERT0(vd->vdev_stat.vs_space);
ASSERT0(vd->vdev_stat.vs_dspace);
ASSERT0(vd->vdev_stat.vs_alloc);
/*
* Remove this vdev from its parent's child list.
@ -1805,7 +1805,7 @@ vdev_dtl_sync(vdev_t *vd, uint64_t txg)
if (vd->vdev_detached) {
if (smo->smo_object != 0) {
int err = dmu_object_free(mos, smo->smo_object, tx);
ASSERT3U(err, ==, 0);
ASSERT0(err);
smo->smo_object = 0;
}
dmu_tx_commit(tx);
@ -2005,7 +2005,7 @@ vdev_remove(vdev_t *vd, uint64_t txg)
tx = dmu_tx_create_assigned(spa_get_dsl(spa), txg);
if (vd->vdev_dtl_smo.smo_object) {
ASSERT3U(vd->vdev_dtl_smo.smo_alloc, ==, 0);
ASSERT0(vd->vdev_dtl_smo.smo_alloc);
(void) dmu_object_free(mos, vd->vdev_dtl_smo.smo_object, tx);
vd->vdev_dtl_smo.smo_object = 0;
}
@ -2017,7 +2017,7 @@ vdev_remove(vdev_t *vd, uint64_t txg)
if (msp == NULL || msp->ms_smo.smo_object == 0)
continue;
ASSERT3U(msp->ms_smo.smo_alloc, ==, 0);
ASSERT0(msp->ms_smo.smo_alloc);
(void) dmu_object_free(mos, msp->ms_smo.smo_object, tx);
msp->ms_smo.smo_object = 0;
}
@ -2295,7 +2295,7 @@ vdev_offline_locked(spa_t *spa, uint64_t guid, uint64_t flags)
(void) spa_vdev_state_exit(spa, vd, 0);
goto top;
}
ASSERT3U(tvd->vdev_stat.vs_alloc, ==, 0);
ASSERT0(tvd->vdev_stat.vs_alloc);
}
/*

View File

@ -281,7 +281,7 @@ vdev_raidz_map_free_vsd(zio_t *zio)
{
raidz_map_t *rm = zio->io_vsd;
ASSERT3U(rm->rm_freed, ==, 0);
ASSERT0(rm->rm_freed);
rm->rm_freed = 1;
if (rm->rm_reports == 0)
@ -1134,7 +1134,7 @@ vdev_raidz_matrix_invert(raidz_map_t *rm, int n, int nmissing, int *missing,
*/
for (i = 0; i < nmissing; i++) {
for (j = 0; j < missing[i]; j++) {
ASSERT3U(rows[i][j], ==, 0);
ASSERT0(rows[i][j]);
}
ASSERT3U(rows[i][missing[i]], !=, 0);
@ -1175,7 +1175,7 @@ vdev_raidz_matrix_invert(raidz_map_t *rm, int n, int nmissing, int *missing,
if (j == missing[i]) {
ASSERT3U(rows[i][j], ==, 1);
} else {
ASSERT3U(rows[i][j], ==, 0);
ASSERT0(rows[i][j]);
}
}
}

View File

@ -162,7 +162,7 @@ zap_table_grow(zap_t *zap, zap_table_phys_t *tbl,
} else {
newblk = zap_allocate_blocks(zap, tbl->zt_numblks * 2);
tbl->zt_nextblk = newblk;
ASSERT3U(tbl->zt_blks_copied, ==, 0);
ASSERT0(tbl->zt_blks_copied);
dmu_prefetch(zap->zap_objset, zap->zap_object,
tbl->zt_blk << bs, tbl->zt_numblks << bs);
}
@ -339,7 +339,7 @@ zap_grow_ptrtbl(zap_t *zap, dmu_tx_t *tx)
ASSERT3U(zap->zap_f.zap_phys->zap_ptrtbl.zt_shift, ==,
ZAP_EMBEDDED_PTRTBL_SHIFT(zap));
ASSERT3U(zap->zap_f.zap_phys->zap_ptrtbl.zt_blk, ==, 0);
ASSERT0(zap->zap_f.zap_phys->zap_ptrtbl.zt_blk);
newblk = zap_allocate_blocks(zap, 1);
err = dmu_buf_hold(zap->zap_objset, zap->zap_object,
@ -475,7 +475,7 @@ zap_open_leaf(uint64_t blkid, dmu_buf_t *db)
* chain. There should be no chained leafs (as we have removed
* support for them).
*/
ASSERT3U(l->l_phys->l_hdr.lh_pad1, ==, 0);
ASSERT0(l->l_phys->l_hdr.lh_pad1);
/*
* There should be more hash entries than there can be
@ -658,9 +658,9 @@ zap_expand_leaf(zap_name_t *zn, zap_leaf_t *l, dmu_tx_t *tx, zap_leaf_t **lp)
zap_leaf_split(l, nl, zap->zap_normflags != 0);
/* set sibling pointers */
for (i = 0; i < (1ULL<<prefix_diff); i++) {
for (i = 0; i < (1ULL << prefix_diff); i++) {
err = zap_set_idx_to_blk(zap, sibling+i, nl->l_blkid, tx);
ASSERT3U(err, ==, 0); /* we checked for i/o errors above */
ASSERT0(err); /* we checked for i/o errors above */
}
if (hash & (1ULL << (64 - l->l_phys->l_hdr.lh_prefix_len))) {

View File

@ -506,7 +506,7 @@ zap_lockdir(objset_t *os, uint64_t obj, dmu_tx_t *tx,
return (mzap_upgrade(zapp, tx, 0));
}
err = dmu_object_set_blocksize(os, obj, newsz, 0, tx);
ASSERT3U(err, ==, 0);
ASSERT0(err);
zap->zap_m.zap_num_chunks =
db->db_size / MZAP_ENT_LEN - 1;
}

View File

@ -20,6 +20,7 @@
*/
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012 by Delphix. All rights reserved.
*/
#include <sys/zfs_context.h>
@ -48,12 +49,12 @@ zfs_dbgmsg_fini(void)
zfs_dbgmsg_size -= size;
}
mutex_destroy(&zfs_dbgmsgs_lock);
ASSERT3U(zfs_dbgmsg_size, ==, 0);
ASSERT0(zfs_dbgmsg_size);
}
/*
* Print these messages by running:
* echo ::zfs_dbgmsg | mdb -k
* echo ::zfs_dbgmsg | mdb -k
*
* Monitor these messages by running:
* dtrace -q -n 'zfs-dbgmsg{printf("%s\n", stringof(arg0))}'

View File

@ -1958,7 +1958,7 @@ zfs_ioc_objset_stats_impl(zfs_cmd_t *zc, objset_t *os)
error = zvol_get_stats(os, nv);
if (error == EIO)
return (error);
VERIFY3S(error, ==, 0);
VERIFY0(error);
}
error = put_nvlist(zc, nv);
nvlist_free(nv);

View File

@ -22,6 +22,9 @@
* Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
* Copyright (c) 2012 by Delphix. All rights reserved.
*/
/*
* This file contains the code to implement file range locking in
@ -481,9 +484,9 @@ zfs_range_unlock_reader(znode_t *zp, rl_t *remove)
cv_destroy(&remove->r_rd_cv);
}
} else {
ASSERT3U(remove->r_cnt, ==, 0);
ASSERT3U(remove->r_write_wanted, ==, 0);
ASSERT3U(remove->r_read_wanted, ==, 0);
ASSERT0(remove->r_cnt);
ASSERT0(remove->r_write_wanted);
ASSERT0(remove->r_read_wanted);
/*
* Find start proxy representing this reader lock,
* then decrement ref count on all proxies

View File

@ -2243,7 +2243,7 @@ zfs_set_version(zfsvfs_t *zfsvfs, uint64_t newvers)
error = zap_add(os, MASTER_NODE_OBJ,
ZFS_SA_ATTRS, 8, 1, &sa_obj, tx);
ASSERT3U(error, ==, 0);
ASSERT0(error);
VERIFY(0 == sa_set_sa_object(os, sa_obj));
sa_register_update_callback(os, zfs_sa_upgrade);

View File

@ -20,6 +20,7 @@
*/
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012 by Delphix. All rights reserved.
*/
/* Portions Copyright 2007 Jeremy Teo */
@ -1641,7 +1642,7 @@ zfs_remove(vnode_t *dvp, char *name, cred_t *cr, caller_context_t *ct,
&xattr_obj, sizeof (xattr_obj));
if (error == 0 && xattr_obj) {
error = zfs_zget(zfsvfs, xattr_obj, &xzp);
ASSERT3U(error, ==, 0);
ASSERT0(error);
dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_TRUE);
dmu_tx_hold_sa(tx, xzp->z_sa_hdl, B_FALSE);
}
@ -1719,11 +1720,11 @@ zfs_remove(vnode_t *dvp, char *name, cred_t *cr, caller_context_t *ct,
error = sa_update(zp->z_sa_hdl,
SA_ZPL_XATTR(zfsvfs), &null_xattr,
sizeof (uint64_t), tx);
ASSERT3U(error, ==, 0);
ASSERT0(error);
}
mutex_enter(&vp->v_lock);
vp->v_count--;
ASSERT3U(vp->v_count, ==, 0);
ASSERT0(vp->v_count);
mutex_exit(&vp->v_lock);
mutex_exit(&zp->z_lock);
zfs_znode_delete(zp, tx);
@ -3096,7 +3097,7 @@ zfs_setattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr,
zp->z_mode = new_mode;
ASSERT3U((uintptr_t)aclp, !=, NULL);
err = zfs_aclset_common(zp, aclp, cr, tx);
ASSERT3U(err, ==, 0);
ASSERT0(err);
if (zp->z_acl_cached)
zfs_acl_free(zp->z_acl_cached);
zp->z_acl_cached = aclp;
@ -3619,7 +3620,7 @@ zfs_rename(vnode_t *sdvp, char *snm, vnode_t *tdvp, char *tnm, cred_t *cr,
error = sa_update(szp->z_sa_hdl, SA_ZPL_FLAGS(zfsvfs),
(void *)&szp->z_pflags, sizeof (uint64_t), tx);
ASSERT3U(error, ==, 0);
ASSERT0(error);
error = zfs_link_destroy(sdl, szp, tx, ZRENAMING, NULL);
if (error == 0) {

View File

@ -20,6 +20,7 @@
*/
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012 by Delphix. All rights reserved.
*/
/* Portions Copyright 2007 Jeremy Teo */
@ -806,7 +807,7 @@ zfs_mknode(znode_t *dzp, vattr_t *vap, dmu_tx_t *tx, cred_t *cr,
err = zap_create_claim_norm(zfsvfs->z_os, obj,
zfsvfs->z_norm, DMU_OT_DIRECTORY_CONTENTS,
obj_type, bonuslen, tx);
ASSERT3U(err, ==, 0);
ASSERT0(err);
} else {
obj = zap_create_norm(zfsvfs->z_os,
zfsvfs->z_norm, DMU_OT_DIRECTORY_CONTENTS,
@ -817,7 +818,7 @@ zfs_mknode(znode_t *dzp, vattr_t *vap, dmu_tx_t *tx, cred_t *cr,
err = dmu_object_claim(zfsvfs->z_os, obj,
DMU_OT_PLAIN_FILE_CONTENTS, 0,
obj_type, bonuslen, tx);
ASSERT3U(err, ==, 0);
ASSERT0(err);
} else {
obj = dmu_object_alloc(zfsvfs->z_os,
DMU_OT_PLAIN_FILE_CONTENTS, 0,
@ -999,7 +1000,7 @@ zfs_mknode(znode_t *dzp, vattr_t *vap, dmu_tx_t *tx, cred_t *cr,
if (obj_type == DMU_OT_ZNODE ||
acl_ids->z_aclp->z_version < ZFS_ACL_VERSION_FUID) {
err = zfs_aclset_common(*zpp, acl_ids->z_aclp, cr, tx);
ASSERT3P(err, ==, 0);
ASSERT0(err);
}
ZFS_OBJ_HOLD_EXIT(zfsvfs, obj);
}
@ -1420,7 +1421,7 @@ zfs_grow_blocksize(znode_t *zp, uint64_t size, dmu_tx_t *tx)
if (error == ENOTSUP)
return;
ASSERT3U(error, ==, 0);
ASSERT0(error);
/* What blocksize did we actually get? */
dmu_object_size_from_db(sa_get_db(zp->z_sa_hdl), &zp->z_blksz, &dummy);

View File

@ -1102,7 +1102,7 @@ zil_lwb_commit(zilog_t *zilog, itx_t *itx, lwb_t *lwb)
lwb->lwb_nused += reclen + dlen;
lwb->lwb_max_txg = MAX(lwb->lwb_max_txg, txg);
ASSERT3U(lwb->lwb_nused, <=, lwb->lwb_sz);
ASSERT3U(P2PHASE(lwb->lwb_nused, sizeof (uint64_t)), ==, 0);
ASSERT0(P2PHASE(lwb->lwb_nused, sizeof (uint64_t)));
return (lwb);
}

View File

@ -2148,7 +2148,7 @@ zio_dva_allocate(zio_t *zio)
}
ASSERT(BP_IS_HOLE(bp));
ASSERT3U(BP_GET_NDVAS(bp), ==, 0);
ASSERT0(BP_GET_NDVAS(bp));
ASSERT3U(zio->io_prop.zp_copies, >, 0);
ASSERT3U(zio->io_prop.zp_copies, <=, spa_max_replication(spa));
ASSERT3U(zio->io_size, ==, BP_GET_PSIZE(bp));

View File

@ -23,6 +23,10 @@
* Use is subject to license terms.
*/
/*
* Copyright (c) 2012 by Delphix. All rights reserved.
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
@ -114,14 +118,18 @@ _NOTE(CONSTCOND) } while (0)
#define VERIFY3S(x, y, z) VERIFY3_IMPL(x, y, z, int64_t)
#define VERIFY3U(x, y, z) VERIFY3_IMPL(x, y, z, uint64_t)
#define VERIFY3P(x, y, z) VERIFY3_IMPL(x, y, z, uintptr_t)
#define VERIFY0(x) VERIFY3_IMPL(x, ==, 0, uintmax_t)
#if DEBUG
#define ASSERT3S(x, y, z) VERIFY3_IMPL(x, y, z, int64_t)
#define ASSERT3U(x, y, z) VERIFY3_IMPL(x, y, z, uint64_t)
#define ASSERT3P(x, y, z) VERIFY3_IMPL(x, y, z, uintptr_t)
#define ASSERT0(x) VERIFY3_IMPL(x, ==, 0, uintmax_t)
#else
#define ASSERT3S(x, y, z) ((void)0)
#define ASSERT3U(x, y, z) ((void)0)
#define ASSERT3P(x, y, z) ((void)0)
#define ASSERT0(x) ((void)0)
#endif
#ifdef _KERNEL