From nobody@FreeBSD.org  Mon Jul 18 15:16:25 2011
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 86385106566B
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 18 Jul 2011 15:16:25 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22])
	by mx1.freebsd.org (Postfix) with ESMTP id 757018FC0C
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 18 Jul 2011 15:16:25 +0000 (UTC)
Received: from red.freebsd.org (localhost [127.0.0.1])
	by red.freebsd.org (8.14.4/8.14.4) with ESMTP id p6IFGOaG010951
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 18 Jul 2011 15:16:24 GMT
	(envelope-from nobody@red.freebsd.org)
Received: (from nobody@localhost)
	by red.freebsd.org (8.14.4/8.14.4/Submit) id p6IFGOLY010950;
	Mon, 18 Jul 2011 15:16:24 GMT
	(envelope-from nobody)
Message-Id: <201107181516.p6IFGOLY010950@red.freebsd.org>
Date: Mon, 18 Jul 2011 15:16:24 GMT
From: Gerrit Khn <gerrit.kuehn@aei.mpg.de>
To: freebsd-gnats-submit@FreeBSD.org
Subject: zfsv28 serves bad device nodes via nfs on FreeBSD 8.2
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         159010
>Category:       kern
>Synopsis:       [zfs] zfsv28 serves bad device nodes via nfs on FreeBSD 8.2
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    delphij
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jul 18 15:20:10 UTC 2011
>Closed-Date:    Wed Aug 03 18:30:32 UTC 2011
>Last-Modified:  Wed Aug 03 18:30:32 UTC 2011
>Originator:     Gerrit Khn
>Release:        8.2-stable as of 15th of July 2011
>Organization:
AEI/MPG
>Environment:
FreeBSD mclane.rt.aei.uni-hannover.de 8.2-STABLE FreeBSD 8.2-STABLE #0: Thu Jul 14 14:09:47 CEST 2011     root@mclane.rt.aei.uni-hannover.de:/usr/obj/usr/src/sys/GENERIC  amd64

>Description:
Copied from my email on freebsd-stable:



I guess I found the root of all evil now: device nodes on zfs!

This is how a linux /dev/console looked on the 8.0-FreeBSD server on
zfsv15:

crw-------  1 root  wheel    5,   1 Oct 28	2010 /tank/diskless/gco-fe2/dev/console


Now, after updating to FreeBSD-8.2 and zfsv28 it looks like this on the server:

crw-r--r--  1 root  wheel  255, 0xffff00ff Jul 18 16:33 /tank/diskless/pt-fe2/dev/console


Strange enough, the Linux client still displays the correct values when using "ls -la", but it refuses to work properly.
I tried creating new device nodes from the client side with mknod and I tried getting correct ones from a backup, but they always end up being broken. Even moving the directories over to a ufs volume leaves them unusable:

crw-r--r--  1 root  wheel    0,   0 Jul 18 16:33 /tmp/console


Luckily, I am back into business now with my machines, because moving the stuff from zfs to ufs and dropping in a correct version of /dev on the ufs side works just fine.

However, it would be great if this could be fixed, because I do not have many ufs partitions left these days...
>How-To-Repeat:
Upgrade filesystems containing device nodes (Linux diskless client in this case) to zfsv28 on FreeBSD 8.2-stable.
>Fix:


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-fs 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Mon Jul 18 21:37:15 UTC 2011 
Responsible-Changed-Why:  
Over to maintainer(s). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=159010 

From: Xin LI <delphij@delphij.net>
To: bug-followup@FreeBSD.org, gerrit.kuehn@aei.mpg.de
Cc: Pawel Jakub Dawidek <pjd@FreeBSD.ORG>, 
 Martin Matuska <mm@FreeBSD.org>
Subject: Re: kern/159010: [zfs] zfsv28 serves bad device nodes via nfs on
 FreeBSD 8.2
Date: Mon, 18 Jul 2011 18:43:10 -0700

 This is a multi-part message in MIME format.
 --------------080303040908050700010603
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 7bit
 
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA256
 
 Hi,
 
 Would you please try if the attached patch fixes the problem?
 
 Cheers,
 - -- 
 Xin LI <delphij@delphij.net>	https://www.delphij.net/
 FreeBSD - The Power to Serve!		Live free or die
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.17 (FreeBSD)
 
 iQEcBAEBCAAGBQJOJOEuAAoJEATO+BI/yjfB1jwH/3qM8a6z7mAcV4kDOT9Y02zb
 Z7ETklaUY47HeLaYYd/Rf9xfqHufJ3Uh8XZRKYN2VFDHxSEoDDfKWqLm3RNzXISn
 UHZFcZwuW2Cxj7s3PVAYx6a/3jcTuT+0gxyLh+u3bSCnH5Y/6gqrNY7czRXDb7Nq
 4oatwM8cE1wvMgTFVfKgloA3yFld9B2ppCLBez3kMtf8moR61eBgTb5mdXQj4Gc+
 221MPTMMI0DmbWID8e5dJbMALlZa5Y6UnkBJFAZVkSMnQ6subzHXLHelJIecyJUP
 U4otUuzItXIA1mBRTjqQ6Rh5YXOKalQvkUb4Cn+S+w6QFOY3zsvm+Cp+FqgPh/o=
 =0RK6
 -----END PGP SIGNATURE-----
 
 --------------080303040908050700010603
 Content-Type: text/plain;
  name="zfs-dev.diff"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment;
  filename="zfs-dev.diff"
 
 SW5kZXg6IHN5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMv
 emZzX3pub2RlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL2NkZGwvY29udHJpYi9vcGVuc29s
 YXJpcy91dHMvY29tbW9uL2ZzL3pmcy96ZnNfem5vZGUuYwkocmV2aXNpb24gMjI0MTc0KQor
 Kysgc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pmcy96ZnNf
 em5vZGUuYwkod29ya2luZyBjb3B5KQpAQCAtNzAwLDYgKzcwMCwxNyBAQCB6ZnNfem5vZGVf
 YWxsb2MoemZzdmZzX3QgKnpmc3ZmcywgZG11X2J1Zl90ICpkYiwgaQogCWNhc2UgVkRJUjoK
 IAkJenAtPnpfem5fcHJlZmV0Y2ggPSBCX1RSVUU7IC8qIHpfcHJlZmV0Y2ggZGVmYXVsdCBp
 cyBlbmFibGVkICovCiAJCWJyZWFrOworCWNhc2UgVkJMSzoKKwljYXNlIFZDSFI6CisJCXsK
 KwkJCXVpbnQ2NF90IHJkZXY7CisJCQlWRVJJRlkoc2FfbG9va3VwKHpwLT56X3NhX2hkbCwg
 U0FfWlBMX1JERVYoemZzdmZzKSwKKwkJCSAgICAmcmRldiwgc2l6ZW9mIChyZGV2KSkgPT0g
 MCk7CisKKwkJCXpwLT56X3JkZXYgPSB6ZnNfY21wbGRldihyZGV2KTsKKwkJfQorLy8JCXZw
 LT52X29wID0gJnpmc19mdm5vZGVvcHM7CisJCWJyZWFrOwogCWNhc2UgVkZJRk86CiAJCXZw
 LT52X29wID0gJnpmc19maWZvb3BzOwogCQlicmVhazsKSW5kZXg6IHN5cy9jZGRsL2NvbnRy
 aWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvemZzX3Zub3BzLmMKPT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PQotLS0gc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pm
 cy96ZnNfdm5vcHMuYwkocmV2aXNpb24gMjI0MTc0KQorKysgc3lzL2NkZGwvY29udHJpYi9v
 cGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pmcy96ZnNfdm5vcHMuYwkod29ya2luZyBjb3B5
 KQpAQCAtMjY5NCw3ICsyNjk0LDcgQEAgemZzX2dldGF0dHIodm5vZGVfdCAqdnAsIHZhdHRy
 X3QgKnZhcCwgaW50IGZsYWdzLAogCXZhcC0+dmFfbmxpbmsgPSBNSU4obGlua3MsIFVJTlQz
 Ml9NQVgpOwkvKiBubGlua190IGxpbWl0ISAqLwogCXZhcC0+dmFfc2l6ZSA9IHpwLT56X3Np
 emU7CiAJdmFwLT52YV9mc2lkID0gdnAtPnZfbW91bnQtPm1udF9zdGF0LmZfZnNpZC52YWxb
 MF07Ci0vLwl2YXAtPnZhX3JkZXYgPSB6ZnNfY21wbGRldihwenAtPnpwX3JkZXYpOworCXZh
 cC0+dmFfcmRldiA9IHpwLT56X3JkZXY7CiAJdmFwLT52YV9zZXEgPSB6cC0+el9zZXE7CiAJ
 dmFwLT52YV9mbGFncyA9IDA7CS8qIEZyZWVCU0Q6IFJlc2V0IGNoZmxhZ3MoMikgZmxhZ3Mu
 ICovCiAKSW5kZXg6IHN5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9m
 cy96ZnMvc3lzL3pmc196bm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9jZGRsL2NvbnRy
 aWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvc3lzL3pmc196bm9kZS5oCShyZXZp
 c2lvbiAyMjQxNzQpCisrKyBzeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21t
 b24vZnMvemZzL3N5cy96ZnNfem5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjA5LDYgKzIw
 OSw3IEBAIHR5cGVkZWYgc3RydWN0IHpub2RlIHsKIAlib29sZWFuX3QJel9pc19zYTsJLyog
 YXJlIHdlIG5hdGl2ZSBzYT8gKi8KIAkvKiBGcmVlQlNELXNwZWNpZmljIGZpZWxkLiAqLwog
 CXN0cnVjdCB0YXNrCXpfdGFzazsKKwlkZXZfdAkJel9yZGV2OwogfSB6bm9kZV90OwogCiAK
 
 --------------080303040908050700010603--

From: Gerrit =?ISO-8859-1?Q?K=FChn?= <gerrit@pmp.uni-hannover.de>
To: bug-followup@FreeBSD.org
Cc: Xin LI <delphij@delphij.net>
Subject: Re: kern/159010: [zfs] zfsv28 serves bad device nodes via nfs on
 FreeBSD 8.2
Date: Tue, 19 Jul 2011 16:20:07 +0200

 Hi,
 
 The patch was rejected by patch(1) (was it against -stable or -current?),
 but I changed the relevant files by hand and recompiled the zfs kernel
 module.
 Good news: everything appears to be back to normal now. The dev nodes look
 ok on the filesystem now, and I can boot the diskless linux clients from
 zfs volumes over nfs again. If I have a voice, this patch should go into
 -stable and -current asap. :-)
 Thank you very much for your quick and professional support!
 
 
 cu
   Gerrit

From: Martin Matuska <mm@FreeBSD.org>
To: d@delphij.net
Cc: Xin LI <delphij@delphij.net>, bug-followup@FreeBSD.org, 
 gerrit.kuehn@aei.mpg.de, Pawel Jakub Dawidek <pjd@FreeBSD.ORG>
Subject: Re: kern/159010: [zfs] zfsv28 serves bad device nodes via nfs on
 FreeBSD 8.2
Date: Wed, 20 Jul 2011 11:29:34 +0200

 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
 I agree to Xin's patch and confirm it working.
 
 Dňa 19.07.2011 03:43, Xin LI  wrote / napísal(a):
 > Hi,
 >
 > Would you please try if the attached patch fixes the problem?
 >
 > Cheers,
 
 - -- 
 Martin Matuska
 FreeBSD committer
 http://blog.vx.sk
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
 
 iEYEARECAAYFAk4mn/gACgkQp2uLA0JhsNEIhgCgiHPUphuzKUm6yysbvoH9z9au
 jMYAniPlHGloF+ubr05eGGdpYOUeEsJ/
 =SVT7
 -----END PGP SIGNATURE-----
 
State-Changed-From-To: open->patched 
State-Changed-By: delphij 
State-Changed-When: Wed Jul 20 16:53:38 UTC 2011 
State-Changed-Why:  
A fix have been committed to -HEAD (slightly different from 
the patch in reply).  Pending MFC reminder. 


Responsible-Changed-From-To: freebsd-fs->delphij 
Responsible-Changed-By: delphij 
Responsible-Changed-When: Wed Jul 20 16:53:38 UTC 2011 
Responsible-Changed-Why:  
Take. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=159010 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/159010: commit references a PR
Date: Wed, 20 Jul 2011 16:53:46 +0000 (UTC)

 Author: delphij
 Date: Wed Jul 20 16:53:32 2011
 New Revision: 224231
 URL: http://svn.freebsd.org/changeset/base/224231
 
 Log:
   Add a new field to in-core znode, z_rdev, to represent device nodes.
   
   PR:		kern/159010
   Reviewed by:	mm@
   Approved by:	re (kib)
   MFC after:	2 weeks
 
 Modified:
   head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
   head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
   head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
 
 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
 ==============================================================================
 --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h	Wed Jul 20 16:52:51 2011	(r224230)
 +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h	Wed Jul 20 16:53:32 2011	(r224231)
 @@ -209,6 +209,7 @@ typedef struct znode {
  	boolean_t	z_is_sa;	/* are we native sa? */
  	/* FreeBSD-specific field. */
  	struct task	z_task;
 +	dev_t		z_rdev;
  } znode_t;
  
  
 
 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
 ==============================================================================
 --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	Wed Jul 20 16:52:51 2011	(r224230)
 +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	Wed Jul 20 16:53:32 2011	(r224231)
 @@ -2694,7 +2694,7 @@ zfs_getattr(vnode_t *vp, vattr_t *vap, i
  	vap->va_nlink = MIN(links, UINT32_MAX);	/* nlink_t limit! */
  	vap->va_size = zp->z_size;
  	vap->va_fsid = vp->v_mount->mnt_stat.f_fsid.val[0];
 -//	vap->va_rdev = zfs_cmpldev(pzp->zp_rdev);
 +	vap->va_rdev = zp->z_rdev;
  	vap->va_seq = zp->z_seq;
  	vap->va_flags = 0;	/* FreeBSD: Reset chflags(2) flags. */
  
 
 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
 ==============================================================================
 --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c	Wed Jul 20 16:52:51 2011	(r224230)
 +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c	Wed Jul 20 16:53:32 2011	(r224231)
 @@ -700,6 +700,16 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_bu
  	case VDIR:
  		zp->z_zn_prefetch = B_TRUE; /* z_prefetch default is enabled */
  		break;
 +	case VBLK:
 +	case VCHR:
 +		{
 +			uint64_t rdev;
 +			VERIFY(sa_lookup(zp->z_sa_hdl, SA_ZPL_RDEV(zfsvfs),
 +			    &rdev, sizeof (rdev)) == 0);
 +
 +			zp->z_rdev = zfs_cmpldev(rdev);
 +		}
 +		break;
  	case VFIFO:
  		vp->v_op = &zfs_fifoops;
  		break;
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/159010: commit references a PR
Date: Wed,  3 Aug 2011 18:12:09 +0000 (UTC)

 Author: delphij
 Date: Wed Aug  3 18:11:53 2011
 New Revision: 224636
 URL: http://svn.freebsd.org/changeset/base/224636
 
 Log:
   MFC r224231,224251-224252:
   
   Make ZFS work better with respect to device nodes.
   
   PR:		kern/159010
 
 Modified:
   stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
   stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
 Directory Properties:
   stable/8/sys/   (props changed)
   stable/8/sys/amd64/include/xen/   (props changed)
   stable/8/sys/cddl/contrib/opensolaris/   (props changed)
   stable/8/sys/contrib/dev/acpica/   (props changed)
   stable/8/sys/contrib/pf/   (props changed)
 
 Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
 ==============================================================================
 --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	Wed Aug  3 14:29:20 2011	(r224635)
 +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	Wed Aug  3 18:11:53 2011	(r224636)
 @@ -2648,11 +2648,11 @@ zfs_getattr(vnode_t *vp, vattr_t *vap, i
  	uint32_t blksize;
  	u_longlong_t nblocks;
  	uint64_t links;
 -	uint64_t mtime[2], ctime[2], crtime[2];
 +	uint64_t mtime[2], ctime[2], crtime[2], rdev;
  	xvattr_t *xvap = (xvattr_t *)vap;	/* vap may be an xvattr_t * */
  	xoptattr_t *xoap = NULL;
  	boolean_t skipaclchk = (flags & ATTR_NOACLCHECK) ? B_TRUE : B_FALSE;
 -	sa_bulk_attr_t bulk[3];
 +	sa_bulk_attr_t bulk[4];
  	int count = 0;
  
  	ZFS_ENTER(zfsvfs);
 @@ -2663,6 +2663,9 @@ zfs_getattr(vnode_t *vp, vattr_t *vap, i
  	SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_MTIME(zfsvfs), NULL, &mtime, 16);
  	SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_CTIME(zfsvfs), NULL, &ctime, 16);
  	SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_CTIME(zfsvfs), NULL, &crtime, 16);
 +	if (vp->v_type == VBLK || vp->v_type == VCHR)
 +		SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_RDEV(zfsvfs), NULL,
 +		    &rdev, 8);
  
  	if ((error = sa_bulk_lookup(zp->z_sa_hdl, bulk, count)) != 0) {
  		ZFS_EXIT(zfsvfs);
 @@ -2691,7 +2694,11 @@ zfs_getattr(vnode_t *vp, vattr_t *vap, i
  	mutex_enter(&zp->z_lock);
  	vap->va_type = IFTOVT(zp->z_mode);
  	vap->va_mode = zp->z_mode & ~S_IFMT;
 -//	vap->va_fsid = zp->z_zfsvfs->z_vfs->vfs_dev;
 +#ifdef sun
 +	vap->va_fsid = zp->z_zfsvfs->z_vfs->vfs_dev;
 +#else
 +	vap->va_fsid = vp->v_mount->mnt_stat.f_fsid.val[0];
 +#endif
  	vap->va_nodeid = zp->z_id;
  	if ((vp->v_flag & VROOT) && zfs_show_ctldir(zp))
  		links = zp->z_links + 1;
 @@ -2699,8 +2706,12 @@ zfs_getattr(vnode_t *vp, vattr_t *vap, i
  		links = zp->z_links;
  	vap->va_nlink = MIN(links, UINT32_MAX);	/* nlink_t limit! */
  	vap->va_size = zp->z_size;
 -	vap->va_fsid = vp->v_mount->mnt_stat.f_fsid.val[0];
 -//	vap->va_rdev = zfs_cmpldev(pzp->zp_rdev);
 +#ifdef sun
 +	vap->va_rdev = vp->v_rdev;
 +#else
 +	if (vp->v_type == VBLK || vp->v_type == VCHR)
 +		vap->va_rdev = zfs_cmpldev(rdev);
 +#endif
  	vap->va_seq = zp->z_seq;
  	vap->va_flags = 0;	/* FreeBSD: Reset chflags(2) flags. */
  
 
 Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
 ==============================================================================
 --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c	Wed Aug  3 14:29:20 2011	(r224635)
 +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c	Wed Aug  3 18:11:53 2011	(r224636)
 @@ -700,7 +700,23 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_bu
  	case VDIR:
  		zp->z_zn_prefetch = B_TRUE; /* z_prefetch default is enabled */
  		break;
 +#ifdef sun
 +	case VBLK:
 +	case VCHR:
 +		{
 +			uint64_t rdev;
 +			VERIFY(sa_lookup(zp->z_sa_hdl, SA_ZPL_RDEV(zfsvfs),
 +			    &rdev, sizeof (rdev)) == 0);
 +
 +			vp->v_rdev = zfs_cmpldev(rdev);
 +		}
 +		break;
 +#endif	/* sun */
  	case VFIFO:
 +#ifdef sun
 +	case VSOCK:
 +	case VDOOR:
 +#endif	/* sun */
  		vp->v_op = &zfs_fifoops;
  		break;
  	case VREG:
 @@ -709,6 +725,14 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_bu
  			vp->v_op = &zfs_shareops;
  		}
  		break;
 +#ifdef sun
 +	case VLNK:
 +		vn_setops(vp, zfs_symvnodeops);
 +		break;
 +	default:
 +		vn_setops(vp, zfs_evnodeops);
 +		break;
 +#endif	/* sun */
  	}
  	if (vp->v_type != VFIFO)
  		VN_LOCK_ASHARE(vp);
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: patched->closed 
State-Changed-By: delphij 
State-Changed-When: Wed Aug 3 18:30:17 UTC 2011 
State-Changed-Why:  
Patch applied against -STABLE. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=159010 
>Unformatted:
