svn commit: r224231 - in
head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys
Xin LI
delphij at FreeBSD.org
Wed Jul 20 16:53:33 UTC 2011
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;
More information about the svn-src-head
mailing list