Module Name:    src
Committed By:   hannken
Date:           Fri Dec  5 09:12:29 UTC 2014

Modified Files:
        src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_znode.c

Log Message:
Remove vnode creation from zfs_create_fs() and zfs_create_share_dir()
as a vnode is not needed here.

Inspired by FreeBSD r253603.


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 \
    src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.16 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.17
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.16	Thu Mar 27 15:50:48 2014
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c	Fri Dec  5 09:12:29 2014
@@ -121,6 +121,8 @@ zfs_znode_cache_constructor(void *buf, v
 
 	ASSERT(!POINTER_IS_VALID(zp->z_zfsvfs));
 
+	zp->z_vnode = NULL;
+
 	list_link_init(&zp->z_link_node);
 
 	mutex_init(&zp->z_lock, NULL, MUTEX_DEFAULT, NULL);
@@ -468,7 +470,6 @@ zfs_create_share_dir(zfsvfs_t *zfsvfs, d
 	zfs_acl_ids_t acl_ids;
 	vattr_t vattr;
 	znode_t *sharezp;
-	vnode_t *vp;
 	znode_t *zp;
 	int error;
 
@@ -483,15 +484,6 @@ zfs_create_share_dir(zfsvfs_t *zfsvfs, d
 	sharezp->z_atime_dirty = 0;
 	sharezp->z_zfsvfs = zfsvfs;
 
-	vp = ZTOV(sharezp);
-	error = getnewvnode(VT_ZFS, zfsvfs->z_parent->z_vfs,
-	    zfs_vnodeop_p, NULL, &sharezp->z_vnode);
-	if (error) {
-		kmem_cache_free(znode_cache, sharezp);
-		return error;
-	}
-	vp->v_type = VDIR;
-
 	VERIFY(0 == zfs_acl_ids_create(sharezp, IS_ROOT_NODE, &vattr,
 	    kcred, NULL, &acl_ids));
 	zfs_mknode(sharezp, &vattr, tx, kcred, IS_ROOT_NODE,
@@ -506,7 +498,6 @@ zfs_create_share_dir(zfsvfs_t *zfsvfs, d
 	zfsvfs->z_shares_dir = sharezp->z_id;
 
 	zfs_acl_ids_free(&acl_ids);
-	ZTOV(sharezp)->v_count = 0;
 	dmu_buf_rele(sharezp->z_dbuf, NULL);
 	sharezp->z_dbuf = NULL;
 	kmem_cache_free(znode_cache, sharezp);
@@ -1489,7 +1480,6 @@ zfs_create_fs(objset_t *os, cred_t *cr, 
 	int		error;
 	int		i;
 	znode_t		*rootzp = NULL;
-	vnode_t		*vp;
 	vattr_t		vattr;
 	znode_t		*zp;
 	zfs_acl_ids_t	acl_ids;
@@ -1562,19 +1552,6 @@ zfs_create_fs(objset_t *os, cred_t *cr, 
 	rootzp->z_unlinked = 0;
 	rootzp->z_atime_dirty = 0;
 
-	for (;;) {
-		error = getnewvnode(VT_ZFS, NULL, zfs_vnodeop_p,
-		    NULL, &rootzp->z_vnode);
-		if (error == 0)
-			break;
-		printf("WARNING: zfs_create_fs: unable to get vnode, "
-		    "error=%d\n", error);
-		kpause("zfsvn", false, hz, NULL);
-	}
-	
-	vp = ZTOV(rootzp);
-	vp->v_type = VDIR;
-
 	bzero(&zfsvfs, sizeof (zfsvfs_t));
 
 	zfsvfs.z_os = os;
@@ -1609,7 +1586,6 @@ zfs_create_fs(objset_t *os, cred_t *cr, 
 
 	dmu_buf_rele(rootzp->z_dbuf, NULL);
 	rootzp->z_dbuf = NULL;
-	ungetnewvnode(vp);
 	kmem_cache_free(znode_cache, rootzp);
 
 	/*

Reply via email to