Mon May 10 06:10:59 2010 UTC ()
Get new vnode when creating zfs share dir for it's znode.


(haad)
diff -r1.6 -r1.7 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c

cvs diff -r1.6 -r1.7 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c (expand / switch to unified diff)

--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c 2010/02/27 23:43:53 1.6
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c 2010/05/10 06:10:59 1.7
@@ -474,27 +474,28 @@ zfs_create_share_dir(zfsvfs_t *zfsvfs, d @@ -474,27 +474,28 @@ zfs_create_share_dir(zfsvfs_t *zfsvfs, d
474 474
475 vattr.va_mask = AT_MODE|AT_UID|AT_GID|AT_TYPE; 475 vattr.va_mask = AT_MODE|AT_UID|AT_GID|AT_TYPE;
476 vattr.va_type = VDIR; 476 vattr.va_type = VDIR;
477 vattr.va_mode = S_IFDIR|0555; 477 vattr.va_mode = S_IFDIR|0555;
478 vattr.va_uid = crgetuid(kcred); 478 vattr.va_uid = crgetuid(kcred);
479 vattr.va_gid = crgetgid(kcred); 479 vattr.va_gid = crgetgid(kcred);
480 480
481 sharezp = kmem_cache_alloc(znode_cache, KM_SLEEP); 481 sharezp = kmem_cache_alloc(znode_cache, KM_SLEEP);
482 sharezp->z_unlinked = 0; 482 sharezp->z_unlinked = 0;
483 sharezp->z_atime_dirty = 0; 483 sharezp->z_atime_dirty = 0;
484 sharezp->z_zfsvfs = zfsvfs; 484 sharezp->z_zfsvfs = zfsvfs;
485 485
486 vp = ZTOV(sharezp); 486 vp = ZTOV(sharezp);
487 vn_reinit(vp); 487 error = getnewvnode(VT_ZFS, zfsvfs->z_parent->z_vfs,
 488 zfs_vnodeop_p, &zp->z_vnode);
488 vp->v_type = VDIR; 489 vp->v_type = VDIR;
489 490
490 VERIFY(0 == zfs_acl_ids_create(sharezp, IS_ROOT_NODE, &vattr, 491 VERIFY(0 == zfs_acl_ids_create(sharezp, IS_ROOT_NODE, &vattr,
491 kcred, NULL, &acl_ids)); 492 kcred, NULL, &acl_ids));
492 zfs_mknode(sharezp, &vattr, tx, kcred, IS_ROOT_NODE, 493 zfs_mknode(sharezp, &vattr, tx, kcred, IS_ROOT_NODE,
493 &zp, 0, &acl_ids); 494 &zp, 0, &acl_ids);
494 ASSERT3P(zp, ==, sharezp); 495 ASSERT3P(zp, ==, sharezp);
495 ASSERT(!vn_in_dnlc(ZTOV(sharezp))); /* not valid to move */ 496 ASSERT(!vn_in_dnlc(ZTOV(sharezp))); /* not valid to move */
496 POINTER_INVALIDATE(&sharezp->z_zfsvfs); 497 POINTER_INVALIDATE(&sharezp->z_zfsvfs);
497 error = zap_add(zfsvfs->z_os, MASTER_NODE_OBJ, 498 error = zap_add(zfsvfs->z_os, MASTER_NODE_OBJ,
498 ZFS_SHARES_DIR, 8, 1, &sharezp->z_id, tx); 499 ZFS_SHARES_DIR, 8, 1, &sharezp->z_id, tx);
499 zfsvfs->z_shares_dir = sharezp->z_id; 500 zfsvfs->z_shares_dir = sharezp->z_id;
500 501