Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/miscfs/kernfs/kernfs_vnops.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/miscfs/kernfs/kernfs_vnops.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.116 retrieving revision 1.122 diff -u -p -r1.116 -r1.122 --- src/sys/miscfs/kernfs/kernfs_vnops.c 2005/12/24 20:45:09 1.116 +++ src/sys/miscfs/kernfs/kernfs_vnops.c 2006/06/23 14:59:40 1.122 @@ -1,4 +1,4 @@ -/* $NetBSD: kernfs_vnops.c,v 1.116 2005/12/24 20:45:09 perry Exp $ */ +/* $NetBSD: kernfs_vnops.c,v 1.122 2006/06/23 14:59:40 christos Exp $ */ /* * Copyright (c) 1992, 1993 @@ -39,7 +39,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.116 2005/12/24 20:45:09 perry Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.122 2006/06/23 14:59:40 christos Exp $"); #ifdef _KERNEL_OPT #include "opt_ipsec.h" @@ -694,7 +694,7 @@ kernfs_open(v) struct vop_open_args /* { struct vnode *a_vp; int a_mode; - struct ucred *a_cred; + kauth_cred_t a_cred; struct lwp *a_l; } */ *ap = v; struct kernfs_node *kfs = VTOKERN(ap->a_vp); @@ -735,7 +735,7 @@ kernfs_close(v) struct vop_close_args /* { struct vnode *a_vp; int a_fflag; - struct ucred *a_cred; + kauth_cred_t a_cred; struct lwp *a_l; } */ *ap = v; struct kernfs_node *kfs = VTOKERN(ap->a_vp); @@ -762,7 +762,7 @@ kernfs_access(v) struct vop_access_args /* { struct vnode *a_vp; int a_mode; - struct ucred *a_cred; + kauth_cred_t a_cred; struct lwp *a_l; } */ *ap = v; struct vattr va; @@ -782,7 +782,7 @@ kernfs_default_fileop_getattr(v) struct vop_getattr_args /* { struct vnode *a_vp; struct vattr *a_vap; - struct ucred *a_cred; + kauth_cred_t a_cred; struct lwp *a_l; } */ *ap = v; struct vattr *vap = ap->a_vap; @@ -800,7 +800,7 @@ kernfs_getattr(v) struct vop_getattr_args /* { struct vnode *a_vp; struct vattr *a_vap; - struct ucred *a_cred; + kauth_cred_t a_cred; struct lwp *a_l; } */ *ap = v; struct kernfs_node *kfs = VTOKERN(ap->a_vp); @@ -819,17 +819,12 @@ kernfs_getattr(v) vap->va_flags = 0; vap->va_size = 0; vap->va_blocksize = DEV_BSIZE; - /* - * Make all times be current TOD, except for the "boottime" node. - * Avoid microtime(9), it's slow. - * We don't guard the read from time(9) with splclock(9) since we - * don't actually need to be THAT sure the access is atomic. - */ + /* Make all times be current TOD, except for the "boottime" node. */ if (kfs->kfs_kt && kfs->kfs_kt->kt_namlen == 8 && !memcmp(kfs->kfs_kt->kt_name, "boottime", 8)) { TIMEVAL_TO_TIMESPEC(&boottime, &vap->va_ctime); } else { - TIMEVAL_TO_TIMESPEC(&time, &vap->va_ctime); + getnanotime(&vap->va_ctime); } vap->va_atime = vap->va_mtime = vap->va_ctime; vap->va_gen = 0; @@ -917,7 +912,7 @@ kernfs_read(v) struct vnode *a_vp; struct uio *a_uio; int a_ioflag; - struct ucred *a_cred; + kauth_cred_t a_cred; } */ *ap = v; struct uio *uio = ap->a_uio; struct kernfs_node *kfs = VTOKERN(ap->a_vp); @@ -948,7 +943,7 @@ kernfs_default_xwrite(v) struct vnode *a_vp; struct uio *a_uio; int a_ioflag; - struct ucred *a_cred; + kauth_cred_t a_cred; } */ *ap = v; struct kernfs_node *kfs = VTOKERN(ap->a_vp); struct uio *uio = ap->a_uio; @@ -978,7 +973,7 @@ kernfs_write(v) struct vnode *a_vp; struct uio *a_uio; int a_ioflag; - struct ucred *a_cred; + kauth_cred_t a_cred; } */ *ap = v; struct kernfs_node *kfs = VTOKERN(ap->a_vp); @@ -995,7 +990,7 @@ kernfs_ioctl(v) u_long a_command; void *a_data; int a_fflag; - struct ucred *a_cred; + kauth_cred_t a_cred; struct lwp *a_l; } */ *ap = v; struct kernfs_node *kfs = VTOKERN(ap->a_vp); @@ -1017,10 +1012,11 @@ kernfs_setdirentfileno_kt(struct dirent return error; if (kt->kt_tag == KFSdevice) { struct vattr va; - if ((error = VOP_GETATTR(vp, &va, ap->a_cred, - ap->a_uio->uio_segflg == UIO_USERSPACE ? - ap->a_uio->uio_lwp : &lwp0)) != 0) - return (error); + + error = VOP_GETATTR(vp, &va, ap->a_cred, curlwp); + if (error != 0) { + return error; + } d->d_fileno = va.va_fileid; } else { kfs = VTOKERN(vp); @@ -1064,7 +1060,7 @@ kernfs_readdir(v) struct vop_readdir_args /* { struct vnode *a_vp; struct uio *a_uio; - struct ucred *a_cred; + kauth_cred_t a_cred; int *a_eofflag; off_t **a_cookies; int a_*ncookies; @@ -1121,9 +1117,9 @@ kernfs_readdir(v) break; } else { dkt = SIMPLEQ_NEXT(dkt, dkt_queue); - if (dkt == NULL) - break; } + if (dkt == NULL) + break; kt = &dkt->dkt_kt; } if (kt->kt_tag == KFSdevice) {