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/Attic/kernfs_subr.c,v retrieving revision 1.6 retrieving revision 1.6.2.2 diff -u -p -r1.6 -r1.6.2.2 --- src/sys/miscfs/kernfs/Attic/kernfs_subr.c 2004/05/07 15:20:29 1.6 +++ src/sys/miscfs/kernfs/Attic/kernfs_subr.c 2004/08/03 10:54:05 1.6.2.2 @@ -1,4 +1,4 @@ -/* $NetBSD: kernfs_subr.c,v 1.6 2004/05/07 15:20:29 cl Exp $ */ +/* $NetBSD: kernfs_subr.c,v 1.6.2.2 2004/08/03 10:54:05 skrll Exp $ */ /* * Copyright (c) 1993 @@ -73,7 +73,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: kernfs_subr.c,v 1.6 2004/05/07 15:20:29 cl Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kernfs_subr.c,v 1.6.2.2 2004/08/03 10:54:05 skrll Exp $"); #ifdef _KERNEL_OPT #include "opt_ipsec.h" @@ -143,12 +143,13 @@ static struct simplelock kfs_hash_slock; * the vnode free list. */ int -kernfs_allocvp(mp, vpp, kfs_type, kt, value) +kernfs_allocvp(mp, vpp, kfs_type, kt, value, l) struct mount *mp; struct vnode **vpp; kfstype kfs_type; const struct kern_target *kt; u_int32_t value; + struct lwp *l; { struct kernfs_node *kfs = NULL, *kfsp; struct vnode *vp = NULL; @@ -177,7 +178,7 @@ kernfs_allocvp(mp, vpp, kfs_type, kt, va return (ENOENT); } vp = fvp; - if (vget(fvp, LK_EXCLUSIVE)) + if (vget(fvp, LK_EXCLUSIVE, l)) goto loop; *vpp = vp; lockmgr(&kfs_hashlock, LK_RELEASE, NULL); @@ -322,7 +323,7 @@ loop: pp->kfs_kt == kt && pp->kfs_value == value) { simple_lock(&vp->v_interlock); simple_unlock(&kfs_hash_slock); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) + if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, curlwp)) /* XXX curlwp */ goto loop; return (vp); }