Date: Mon, 12 Sep 2005 10:58:25 GMT From: Robert Watson <rwatson@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 83452 for review Message-ID: <200509121058.j8CAwPNM033864@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=83452 Change 83452 by rwatson@rwatson_zoo on 2005/09/12 10:57:53 Integrate netsmp from FreeBSD CVS: - devfs style fixen - vfs_read_dirrent - Loop back a number of fifofs fixes/tweaks. Affected files ... .. //depot/projects/netsmp/src/sys/dev/pccbb/pccbb.c#3 integrate .. //depot/projects/netsmp/src/sys/dev/sound/isa/mss.c#4 integrate .. //depot/projects/netsmp/src/sys/dev/usb/usbdevs#2 integrate .. //depot/projects/netsmp/src/sys/fs/devfs/devfs_vnops.c#6 integrate .. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#5 integrate .. //depot/projects/netsmp/src/sys/i386/include/ucontext.h#2 integrate .. //depot/projects/netsmp/src/sys/kern/vfs_hash.c#2 integrate .. //depot/projects/netsmp/src/sys/kern/vfs_subr.c#8 integrate .. //depot/projects/netsmp/src/sys/netgraph/netgraph.h#6 integrate .. //depot/projects/netsmp/src/sys/sys/vnode.h#4 integrate .. //depot/projects/netsmp/src/sys/ufs/ffs/ffs_rawread.c#2 integrate Differences ... ==== //depot/projects/netsmp/src/sys/dev/pccbb/pccbb.c#3 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.127 2005/09/08 17:18:42 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.128 2005/09/12 05:35:11 imp Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -1554,7 +1554,6 @@ int error = 0; struct cbb_softc *sc = device_get_softc(self); - cbb_power_disable_socket(device_get_parent(self), self); cbb_set(sc, CBB_SOCKET_MASK, 0); /* Quiet hardware */ bus_teardown_intr(self, sc->irq_res, sc->intrhand); sc->flags &= ~CBB_CARD_OK; /* Card is bogus now */ ==== //depot/projects/netsmp/src/sys/dev/sound/isa/mss.c#4 (text+ko) ==== @@ -29,7 +29,7 @@ #include <dev/sound/pcm/sound.h> -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/isa/mss.c,v 1.100 2005/09/11 13:59:02 netchild Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/isa/mss.c,v 1.101 2005/09/12 04:12:50 imp Exp $"); /* board-specific include files */ #include <dev/sound/isa/mss.h> @@ -92,7 +92,9 @@ /* prototypes for local functions */ static int mss_detect(device_t dev, struct mss_info *mss); +#ifndef PC98 static int opti_detect(device_t dev, struct mss_info *mss); +#endif static char *ymf_test(device_t dev, struct mss_info *mss); static void ad_unmute(struct mss_info *mss); @@ -1592,6 +1594,7 @@ return ENXIO; } +#ifndef PC98 static int opti_detect(device_t dev, struct mss_info *mss) { @@ -1637,6 +1640,7 @@ } return 0; } +#endif static char * ymf_test(device_t dev, struct mss_info *mss) ==== //depot/projects/netsmp/src/sys/dev/usb/usbdevs#2 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/usb/usbdevs,v 1.232 2005/07/08 16:28:24 sam Exp $ +$FreeBSD: src/sys/dev/usb/usbdevs,v 1.233 2005/09/12 03:32:46 obrien Exp $ /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */ /*- @@ -334,7 +334,7 @@ vendor AGFA 0x06bd AGFA-Gevaert vendor ASIAMD 0x06be Asia Microelectronic Development vendor BIZLINK 0x06c4 Bizlink -vendor KEYSPAN 0x06cd Keyspan +vendor KEYSPAN 0x06cd Keyspan / InnoSys Inc. vendor AASHIMA 0x06d6 Aashima vendor MULTITECH 0x06e0 MultiTech vendor ADS 0x06e1 ADS ==== //depot/projects/netsmp/src/sys/fs/devfs/devfs_vnops.c#6 (text+ko) ==== @@ -31,7 +31,7 @@ * @(#)kernfs_vnops.c 8.15 (Berkeley) 5/21/95 * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vnops.c 1.43 * - * $FreeBSD: src/sys/fs/devfs/devfs_vnops.c,v 1.121 2005/08/29 11:14:18 phk Exp $ + * $FreeBSD: src/sys/fs/devfs/devfs_vnops.c,v 1.122 2005/09/12 08:03:15 phk Exp $ */ /* @@ -67,108 +67,11 @@ #include <sys/unistd.h> #include <sys/vnode.h> +static struct vop_vector devfs_vnodeops; +static struct vop_vector devfs_specops; +static struct fileops devfs_ops_f; + #include <fs/devfs/devfs.h> - -static fo_rdwr_t devfs_read_f; -static fo_rdwr_t devfs_write_f; -static fo_ioctl_t devfs_ioctl_f; -static fo_poll_t devfs_poll_f; -static fo_kqfilter_t devfs_kqfilter_f; -static fo_stat_t devfs_stat_f; -static fo_close_t devfs_close_f; - -static struct fileops devfs_ops_f = { - .fo_read = devfs_read_f, - .fo_write = devfs_write_f, - .fo_ioctl = devfs_ioctl_f, - .fo_poll = devfs_poll_f, - .fo_kqfilter = devfs_kqfilter_f, - .fo_stat = devfs_stat_f, - .fo_close = devfs_close_f, - .fo_flags = DFLAG_PASSABLE | DFLAG_SEEKABLE -}; - -static vop_access_t devfs_access; -static vop_advlock_t devfs_advlock; -static vop_close_t devfs_close; -static vop_fsync_t devfs_fsync; -static vop_getattr_t devfs_getattr; -static vop_lookup_t devfs_lookup; -static vop_lookup_t devfs_lookupx; -static vop_mknod_t devfs_mknod; -static vop_open_t devfs_open; -static vop_pathconf_t devfs_pathconf; -static vop_print_t devfs_print; -static vop_readdir_t devfs_readdir; -static vop_readlink_t devfs_readlink; -static vop_reclaim_t devfs_reclaim; -static vop_remove_t devfs_remove; -static vop_revoke_t devfs_revoke; -static vop_ioctl_t devfs_rioctl; -static vop_read_t devfs_rread; -static vop_setattr_t devfs_setattr; -#ifdef MAC -static vop_setlabel_t devfs_setlabel; -#endif -static vop_symlink_t devfs_symlink; - -static struct vop_vector devfs_vnodeops = { - .vop_default = &default_vnodeops, - - .vop_access = devfs_access, - .vop_getattr = devfs_getattr, - .vop_ioctl = devfs_rioctl, - .vop_lookup = devfs_lookup, - .vop_mknod = devfs_mknod, - .vop_pathconf = devfs_pathconf, - .vop_read = devfs_rread, - .vop_readdir = devfs_readdir, - .vop_readlink = devfs_readlink, - .vop_reclaim = devfs_reclaim, - .vop_remove = devfs_remove, - .vop_revoke = devfs_revoke, - .vop_setattr = devfs_setattr, -#ifdef MAC - .vop_setlabel = devfs_setlabel, -#endif - .vop_symlink = devfs_symlink, -}; - -static struct vop_vector devfs_specops = { - .vop_default = &default_vnodeops, - - .vop_access = devfs_access, - .vop_advlock = devfs_advlock, - .vop_bmap = VOP_PANIC, - .vop_close = devfs_close, - .vop_create = VOP_PANIC, - .vop_fsync = devfs_fsync, - .vop_getattr = devfs_getattr, - .vop_lease = VOP_NULL, - .vop_link = VOP_PANIC, - .vop_mkdir = VOP_PANIC, - .vop_mknod = VOP_PANIC, - .vop_open = devfs_open, - .vop_pathconf = devfs_pathconf, - .vop_print = devfs_print, - .vop_read = VOP_PANIC, - .vop_readdir = VOP_PANIC, - .vop_readlink = VOP_PANIC, - .vop_reallocblks = VOP_PANIC, - .vop_reclaim = devfs_reclaim, - .vop_remove = devfs_remove, - .vop_rename = VOP_PANIC, - .vop_revoke = devfs_revoke, - .vop_rmdir = VOP_PANIC, - .vop_setattr = devfs_setattr, -#ifdef MAC - .vop_setlabel = devfs_setlabel, -#endif - .vop_strategy = VOP_PANIC, - .vop_symlink = VOP_PANIC, - .vop_write = VOP_PANIC, -}; - static int devfs_fp_check(struct file *fp, struct cdev **devp, struct cdevsw **dswp) { @@ -278,13 +181,7 @@ } static int -devfs_access(ap) - struct vop_access_args /* { - struct vnode *a_vp; - int a_mode; - struct ucred *a_cred; - struct thread *a_td; - } */ *ap; +devfs_access(struct vop_access_args *ap) { struct vnode *vp = ap->a_vp; struct devfs_dirent *de; @@ -313,14 +210,7 @@ */ /* ARGSUSED */ static int -devfs_advlock(ap) - struct vop_advlock_args /* { - struct vnode *a_vp; - caddr_t a_id; - int a_op; - struct flock *a_fl; - int a_flags; - } */ *ap; +devfs_advlock(struct vop_advlock_args *ap) { return (ap->a_flags & F_FLOCK ? EOPNOTSUPP : EINVAL); @@ -331,13 +221,7 @@ */ /* ARGSUSED */ static int -devfs_close(ap) - struct vop_close_args /* { - struct vnode *a_vp; - int a_fflag; - struct ucred *a_cred; - struct thread *a_td; - } */ *ap; +devfs_close(struct vop_close_args *ap) { struct vnode *vp = ap->a_vp, *oldvp; struct thread *td = ap->a_td; @@ -423,13 +307,7 @@ */ /* ARGSUSED */ static int -devfs_fsync(ap) - struct vop_fsync_args /* { - struct vnode *a_vp; - struct ucred *a_cred; - int a_waitfor; - struct thread *a_td; - } */ *ap; +devfs_fsync(struct vop_fsync_args *ap) { if (!vn_isdisk(ap->a_vp, NULL)) return (0); @@ -438,13 +316,7 @@ } static int -devfs_getattr(ap) - struct vop_getattr_args /* { - struct vnode *a_vp; - struct vattr *a_vap; - struct ucred *a_cred; - struct thread *a_td; - } */ *ap; +devfs_getattr(struct vop_getattr_args *ap) { struct vnode *vp = ap->a_vp; struct vattr *vap = ap->a_vap; @@ -593,12 +465,7 @@ } static int -devfs_lookupx(ap) - struct vop_lookup_args /* { - struct vnode * a_dvp; - struct vnode ** a_vpp; - struct componentname * a_cnp; - } */ *ap; +devfs_lookupx(struct vop_lookup_args *ap) { struct componentname *cnp; struct vnode *dvp, **vpp; @@ -743,14 +610,6 @@ static int devfs_mknod(struct vop_mknod_args *ap) - /* - struct vop_mknod_args { - struct vnodeop_desc *a_desc; - struct vnode *a_dvp; - struct vnode **a_vpp; - struct componentname *a_cnp; - struct vattr *a_vap; - }; */ { struct componentname *cnp; struct vnode *dvp, **vpp; @@ -799,14 +658,7 @@ */ /* ARGSUSED */ static int -devfs_open(ap) - struct vop_open_args /* { - struct vnode *a_vp; - int a_mode; - struct ucred *a_cred; - struct thread *a_td; - int a_fdidx; - } */ *ap; +devfs_open(struct vop_open_args *ap) { struct thread *td = ap->a_td; struct vnode *vp = ap->a_vp; @@ -890,12 +742,7 @@ } static int -devfs_pathconf(ap) - struct vop_pathconf_args /* { - struct vnode *a_vp; - int a_name; - int *a_retval; - } */ *ap; +devfs_pathconf(struct vop_pathconf_args *ap) { switch (ap->a_name) { @@ -942,10 +789,7 @@ * Print out the contents of a special device vnode. */ static int -devfs_print(ap) - struct vop_print_args /* { - struct vnode *a_vp; - } */ *ap; +devfs_print(struct vop_print_args *ap) { printf("\tdev %s\n", devtoname(ap->a_vp->v_rdev)); @@ -986,15 +830,7 @@ } static int -devfs_readdir(ap) - struct vop_readdir_args /* { - struct vnode *a_vp; - struct uio *a_uio; - struct ucred *a_cred; - int *a_eofflag; - int *a_ncookies; - u_long **a_cookies; - } */ *ap; +devfs_readdir(struct vop_readdir_args *ap) { int error; struct uio *uio; @@ -1003,9 +839,6 @@ struct devfs_dirent *de; struct devfs_mount *dmp; off_t off, oldoff; - int ncookies = 0; - u_long *cookiebuf, *cookiep; - struct dirent *dps, *dpe; if (ap->a_vp->v_type != VDIR) return (ENOTDIR); @@ -1021,6 +854,10 @@ de = ap->a_vp->v_data; off = 0; oldoff = uio->uio_offset; + if (ap->a_ncookies != NULL) { + *ap->a_ncookies = 0; + *ap->a_cookies = NULL; + } TAILQ_FOREACH(dd, &de->de_dlist, de_list) { if (dd->de_flags & DE_WHITEOUT) continue; @@ -1033,41 +870,19 @@ break; dp->d_fileno = de->de_inode; if (off >= uio->uio_offset) { - ncookies++; - error = uiomove(dp, dp->d_reclen, uio); + error = vfs_read_dirent(ap, dp, off); if (error) break; } off += dp->d_reclen; } - if( !error && ap->a_ncookies != NULL && ap->a_cookies != NULL ) { - MALLOC(cookiebuf, u_long *, ncookies * sizeof(u_long), - M_TEMP, M_WAITOK); - cookiep = cookiebuf; - dps = (struct dirent *)((char *)uio->uio_iov->iov_base - - (uio->uio_offset - oldoff)); - dpe = (struct dirent *) uio->uio_iov->iov_base; - for( dp = dps; - dp < dpe; - dp = (struct dirent *)((caddr_t) dp + dp->d_reclen)) { - oldoff += dp->d_reclen; - *cookiep++ = (u_long) oldoff; - } - *ap->a_ncookies = ncookies; - *ap->a_cookies = cookiebuf; - } lockmgr(&dmp->dm_lock, LK_RELEASE, 0, curthread); uio->uio_offset = off; return (error); } static int -devfs_readlink(ap) - struct vop_readlink_args /* { - struct vnode *a_vp; - struct uio *a_uio; - struct ucred *a_cead; - } */ *ap; +devfs_readlink(struct vop_readlink_args *ap) { int error; struct devfs_dirent *de; @@ -1078,10 +893,7 @@ } static int -devfs_reclaim(ap) - struct vop_reclaim_args /* { - struct vnode *a_vp; - } */ *ap; +devfs_reclaim(struct vop_reclaim_args *ap) { struct vnode *vp = ap->a_vp; struct devfs_dirent *de; @@ -1109,12 +921,7 @@ } static int -devfs_remove(ap) - struct vop_remove_args /* { - struct vnode *a_dvp; - struct vnode *a_vp; - struct componentname *a_cnp; - } */ *ap; +devfs_remove(struct vop_remove_args *ap) { struct vnode *vp = ap->a_vp; struct devfs_dirent *dd; @@ -1145,11 +952,7 @@ * as well so that we create a new one next time around. */ static int -devfs_revoke(ap) - struct vop_revoke_args /* { - struct vnode *a_vp; - int a_flags; - } */ *ap; +devfs_revoke(struct vop_revoke_args *ap) { struct vnode *vp = ap->a_vp; struct cdev *dev; @@ -1170,15 +973,7 @@ } static int -devfs_rioctl(ap) - struct vop_ioctl_args /* { - struct vnode *a_vp; - u_long a_command; - caddr_t a_data; - int a_fflag; - struct ucred *a_cred; - struct thread *a_td; - } */ *ap; +devfs_rioctl(struct vop_ioctl_args *ap) { int error; struct devfs_mount *dmp; @@ -1193,13 +988,7 @@ } static int -devfs_rread(ap) - struct vop_read_args /* { - struct vnode *a_vp; - struct uio *a_uio; - int a_ioflag; - struct ucred *a_cred; - } */ *ap; +devfs_rread(struct vop_read_args *ap) { if (ap->a_vp->v_type != VDIR) @@ -1208,13 +997,7 @@ } static int -devfs_setattr(ap) - struct vop_setattr_args /* { - struct vnode *a_vp; - struct vattr *a_vap; - struct ucred *a_cred; - struct proc *a_p; - } */ *ap; +devfs_setattr(struct vop_setattr_args *ap) { struct devfs_dirent *de; struct vattr *vap; @@ -1300,13 +1083,7 @@ #ifdef MAC static int -devfs_setlabel(ap) - struct vop_setlabel_args /* { - struct vnode *a_vp; - struct mac *a_label; - struct ucred *a_cred; - struct thread *a_td; - } */ *ap; +devfs_setlabel(struct vop_setlabel_args *ap) { struct vnode *vp; struct devfs_dirent *de; @@ -1329,14 +1106,7 @@ } static int -devfs_symlink(ap) - struct vop_symlink_args /* { - struct vnode *a_dvp; - struct vnode **a_vpp; - struct componentname *a_cnp; - struct vattr *a_vap; - char *a_target; - } */ *ap; +devfs_symlink(struct vop_symlink_args *ap) { int i, error; struct devfs_dirent *dd; @@ -1414,6 +1184,74 @@ return (x->si_inode); } +static struct fileops devfs_ops_f = { + .fo_read = devfs_read_f, + .fo_write = devfs_write_f, + .fo_ioctl = devfs_ioctl_f, + .fo_poll = devfs_poll_f, + .fo_kqfilter = devfs_kqfilter_f, + .fo_stat = devfs_stat_f, + .fo_close = devfs_close_f, + .fo_flags = DFLAG_PASSABLE | DFLAG_SEEKABLE +}; + +static struct vop_vector devfs_vnodeops = { + .vop_default = &default_vnodeops, + + .vop_access = devfs_access, + .vop_getattr = devfs_getattr, + .vop_ioctl = devfs_rioctl, + .vop_lookup = devfs_lookup, + .vop_mknod = devfs_mknod, + .vop_pathconf = devfs_pathconf, + .vop_read = devfs_rread, + .vop_readdir = devfs_readdir, + .vop_readlink = devfs_readlink, + .vop_reclaim = devfs_reclaim, + .vop_remove = devfs_remove, + .vop_revoke = devfs_revoke, + .vop_setattr = devfs_setattr, +#ifdef MAC + .vop_setlabel = devfs_setlabel, +#endif + .vop_symlink = devfs_symlink, +}; + +static struct vop_vector devfs_specops = { + .vop_default = &default_vnodeops, + + .vop_access = devfs_access, + .vop_advlock = devfs_advlock, + .vop_bmap = VOP_PANIC, + .vop_close = devfs_close, + .vop_create = VOP_PANIC, + .vop_fsync = devfs_fsync, + .vop_getattr = devfs_getattr, + .vop_lease = VOP_NULL, + .vop_link = VOP_PANIC, + .vop_mkdir = VOP_PANIC, + .vop_mknod = VOP_PANIC, + .vop_open = devfs_open, + .vop_pathconf = devfs_pathconf, + .vop_print = devfs_print, + .vop_read = VOP_PANIC, + .vop_readdir = VOP_PANIC, + .vop_readlink = VOP_PANIC, + .vop_reallocblks = VOP_PANIC, + .vop_reclaim = devfs_reclaim, + .vop_remove = devfs_remove, + .vop_rename = VOP_PANIC, + .vop_revoke = devfs_revoke, + .vop_rmdir = VOP_PANIC, + .vop_setattr = devfs_setattr, +#ifdef MAC + .vop_setlabel = devfs_setlabel, +#endif + .vop_strategy = VOP_PANIC, + .vop_symlink = VOP_PANIC, + .vop_write = VOP_PANIC, +}; + /* * Our calling convention to the device drivers used to be that we passed ==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95 - * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.113 2005/03/13 12:18:23 jeff Exp $ + * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.118 2005/09/12 10:16:18 rwatson Exp $ */ #include <sys/param.h> ==== //depot/projects/netsmp/src/sys/i386/include/ucontext.h#2 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/i386/include/ucontext.h,v 1.10 2002/12/02 19:58:55 deischen Exp $ + * $FreeBSD: src/sys/i386/include/ucontext.h,v 1.11 2005/09/12 03:34:05 obrien Exp $ */ #ifndef _MACHINE_UCONTEXT_H_ @@ -37,26 +37,26 @@ * sigcontext. So that we can support sigcontext * and ucontext_t at the same time. */ - int mc_onstack; /* XXX - sigcontext compat. */ - int mc_gs; /* machine state (struct trapframe) */ - int mc_fs; - int mc_es; - int mc_ds; - int mc_edi; - int mc_esi; - int mc_ebp; - int mc_isp; - int mc_ebx; - int mc_edx; - int mc_ecx; - int mc_eax; - int mc_trapno; - int mc_err; - int mc_eip; - int mc_cs; - int mc_eflags; - int mc_esp; - int mc_ss; + __register_t mc_onstack; /* XXX - sigcontext compat. */ + __register_t mc_gs; /* machine state (struct trapframe) */ + __register_t mc_fs; + __register_t mc_es; + __register_t mc_ds; + __register_t mc_edi; + __register_t mc_esi; + __register_t mc_ebp; + __register_t mc_isp; + __register_t mc_ebx; + __register_t mc_edx; + __register_t mc_ecx; + __register_t mc_eax; + __register_t mc_trapno; + __register_t mc_err; + __register_t mc_eip; + __register_t mc_cs; + __register_t mc_eflags; + __register_t mc_esp; + __register_t mc_ss; int mc_len; /* sizeof(mcontext_t) */ #define _MC_FPFMT_NODEV 0x10000 /* device not present or configured */ @@ -77,28 +77,28 @@ #if defined(_KERNEL) && defined(COMPAT_FREEBSD4) struct mcontext4 { - int mc_onstack; /* XXX - sigcontext compat. */ - int mc_gs; /* machine state (struct trapframe) */ - int mc_fs; - int mc_es; - int mc_ds; - int mc_edi; - int mc_esi; - int mc_ebp; - int mc_isp; - int mc_ebx; - int mc_edx; - int mc_ecx; - int mc_eax; - int mc_trapno; - int mc_err; - int mc_eip; - int mc_cs; - int mc_eflags; - int mc_esp; /* machine state */ - int mc_ss; - int mc_fpregs[28]; /* env87 + fpacc87 + u_long */ - int __spare__[17]; + __register_t mc_onstack; /* XXX - sigcontext compat. */ + __register_t mc_gs; /* machine state (struct trapframe) */ + __register_t mc_fs; + __register_t mc_es; + __register_t mc_ds; + __register_t mc_edi; + __register_t mc_esi; + __register_t mc_ebp; + __register_t mc_isp; + __register_t mc_ebx; + __register_t mc_edx; + __register_t mc_ecx; + __register_t mc_eax; + __register_t mc_trapno; + __register_t mc_err; + __register_t mc_eip; + __register_t mc_cs; + __register_t mc_eflags; + __register_t mc_esp; /* machine state */ + __register_t mc_ss; + __register_t mc_fpregs[28]; /* env87 + fpacc87 + u_long */ + __register_t __spare__[17]; }; #endif ==== //depot/projects/netsmp/src/sys/kern/vfs_hash.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/vfs_hash.c,v 1.9 2005/04/07 07:54:08 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_hash.c,v 1.10 2005/09/12 01:48:57 tegge Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -79,7 +79,7 @@ VI_LOCK(vp); mtx_unlock(&vfs_hash_mtx); error = vget(vp, flags | LK_INTERLOCK, td); - if (error == ENOENT) + if (error == ENOENT && (flags & LK_NOWAIT) == 0) break; if (error) return (error); @@ -124,7 +124,7 @@ VI_LOCK(vp2); mtx_unlock(&vfs_hash_mtx); error = vget(vp2, flags | LK_INTERLOCK, td); - if (error == ENOENT) + if (error == ENOENT && (flags & LK_NOWAIT) == 0) break; mtx_lock(&vfs_hash_mtx); LIST_INSERT_HEAD(&vfs_hash_side, vp, v_hashlist); ==== //depot/projects/netsmp/src/sys/kern/vfs_subr.c#8 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.643 2005/08/28 23:00:11 ssouhlal Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.644 2005/09/12 08:46:07 phk Exp $"); #include "opt_ddb.h" #include "opt_mac.h" @@ -49,6 +49,7 @@ #include <sys/bio.h> #include <sys/buf.h> #include <sys/conf.h> +#include <sys/dirent.h> #include <sys/event.h> #include <sys/eventhandler.h> #include <sys/extattr.h> @@ -3838,3 +3839,29 @@ } return (kn->kn_fflags != 0); } + +int +vfs_read_dirent(struct vop_readdir_args *ap, struct dirent *dp, off_t off) +{ + int error; + + if (dp->d_reclen > ap->a_uio->uio_resid) + return (ENAMETOOLONG); + error = uiomove(dp, dp->d_reclen, ap->a_uio); + if (error) { + if (ap->a_ncookies != NULL) { + if (ap->a_cookies != NULL) + free(ap->a_cookies, M_TEMP); + ap->a_cookies = NULL; + *ap->a_ncookies = 0; + } + return (error); + } + if (ap->a_ncookies == NULL) + return (0); + *ap->a_cookies = realloc(*ap->a_cookies, + (*ap->a_ncookies + 1) * sizeof(u_long), M_TEMP, M_WAITOK | M_ZERO); + (*ap->a_cookies)[*ap->a_ncookies] = off; + return (0); +} + ==== //depot/projects/netsmp/src/sys/netgraph/netgraph.h#6 (text+ko) ==== @@ -37,7 +37,7 @@ * * Author: Julian Elischer <julian@freebsd.org> * - * $FreeBSD: src/sys/netgraph/netgraph.h,v 1.60 2005/08/30 09:44:54 glebius Exp $ + * $FreeBSD: src/sys/netgraph/netgraph.h,v 1.61 2005/09/12 07:41:31 glebius Exp $ * $Whistle: netgraph.h,v 1.29 1999/11/01 07:56:13 julian Exp $ */ @@ -1087,7 +1087,6 @@ int ng_callout(struct callout *c, node_p node, hook_p hook, int ticks, ng_item_fn *fn, void * arg1, int arg2); #define ng_callout_init(c) callout_init(c, CALLOUT_MPSAFE) -#define ng_callout_init_mtx(c,mtx) callout_init_mtx(c, mtx, 0) /* Flags for netgraph functions. */ #define NG_NOFLAGS 0x00000000 /* no special options */ ==== //depot/projects/netsmp/src/sys/sys/vnode.h#4 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)vnode.h 8.7 (Berkeley) 2/4/94 - * $FreeBSD: src/sys/sys/vnode.h,v 1.306 2005/08/06 01:42:04 ssouhlal Exp $ + * $FreeBSD: src/sys/sys/vnode.h,v 1.307 2005/09/12 08:46:07 phk Exp $ */ #ifndef _SYS_VNODE_H_ @@ -727,6 +727,8 @@ void vfs_hash_remove(struct vnode *vp); int vfs_kqfilter(struct vop_kqfilter_args *); +struct dirent; +int vfs_read_dirent(struct vop_readdir_args *ap, struct dirent *dp, off_t off); #endif /* _KERNEL */ ==== //depot/projects/netsmp/src/sys/ufs/ffs/ffs_rawread.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_rawread.c,v 1.25 2005/04/30 11:28:19 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_rawread.c,v 1.26 2005/09/12 01:21:42 tegge Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -102,7 +102,6 @@ int upgraded; struct bufobj *bo; - GIANT_REQUIRED; /* Check for dirty mmap, pending writes and dirty buffers */ spl = splbio(); VI_LOCK(vp); @@ -189,7 +188,6 @@ struct inode *ip; ufs2_daddr_t blkno; - GIANT_REQUIRED; bsize = vp->v_mount->mnt_stat.f_iosize; ip = VTOI(vp); @@ -268,7 +266,6 @@ off_t offset; struct thread *td; - GIANT_REQUIRED; td = uio->uio_td ? uio->uio_td : curthread; udata = uio->uio_iov->iov_base; resid = uio->uio_resid;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200509121058.j8CAwPNM033864>