summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2017-09-26 08:43:43 +0000
committeravg <avg@FreeBSD.org>2017-09-26 08:43:43 +0000
commite202245dc38f10eaccdab9e7bfb86f05421666db (patch)
tree0c9e8ce7eb6fb285e1ad7cb5b0118ac42592e6f9
parentbe06c7722fe019f167fd69fbfca2fdf4c0119108 (diff)
downloadFreeBSD-src-e202245dc38f10eaccdab9e7bfb86f05421666db.zip
FreeBSD-src-e202245dc38f10eaccdab9e7bfb86f05421666db.tar.gz
MFC r323479,r323491: zfs: tighten debug versions of ZTOV and VTOZ
Sponsored by: Panzura
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h4
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c5
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c3
3 files changed, 7 insertions, 5 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
index c127788..6465c50 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
@@ -227,7 +227,7 @@ ZTOV(znode_t *zp)
{
vnode_t *vp = zp->z_vnode;
- ASSERT(vp == NULL || vp->v_data == NULL || vp->v_data == zp);
+ ASSERT(vp != NULL && vp->v_data == zp);
return (vp);
}
static __inline znode_t *
@@ -235,7 +235,7 @@ VTOZ(vnode_t *vp)
{
znode_t *zp = (znode_t *)vp->v_data;
- ASSERT(zp == NULL || zp->z_vnode == NULL || zp->z_vnode == vp);
+ ASSERT(zp != NULL && zp->z_vnode == vp);
return (zp);
}
#else
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c
index 1a9f0d4..e987314 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c
@@ -1602,7 +1602,10 @@ zfs_acl_ids_create(znode_t *dzp, int flag, vattr_t *vap, cred_t *cr,
boolean_t trim = B_FALSE;
boolean_t inherited = B_FALSE;
- ASSERT_VOP_ELOCKED(ZTOV(dzp), __func__);
+ if ((flag & IS_ROOT_NODE) == 0)
+ ASSERT_VOP_ELOCKED(ZTOV(dzp), __func__);
+ else
+ ASSERT(dzp->z_vnode == NULL);
bzero(acl_ids, sizeof (zfs_acl_ids_t));
acl_ids->z_mode = MAKEIMODE(vap->va_type, vap->va_mode);
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
index 1ad0d83..61f7041 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
@@ -143,8 +143,7 @@ zfs_znode_cache_destructor(void *buf, void *arg)
znode_t *zp = buf;
ASSERT(!POINTER_IS_VALID(zp->z_zfsvfs));
- ASSERT(ZTOV(zp) == NULL);
- vn_free(ZTOV(zp));
+ ASSERT3P(zp->z_vnode, ==, NULL);
ASSERT(!list_link_active(&zp->z_link_node));
mutex_destroy(&zp->z_acl_lock);
avl_destroy(&zp->z_range_avl);
OpenPOWER on IntegriCloud