From owner-freebsd-hackers@FreeBSD.ORG Mon Feb 7 05:33:13 2005 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B4D3316A4CE for ; Mon, 7 Feb 2005 05:33:13 +0000 (GMT) Received: from smtp.ucla.edu (smtp.ucla.edu [169.232.48.136]) by mx1.FreeBSD.org (Postfix) with ESMTP id 63F1643D1F for ; Mon, 7 Feb 2005 05:33:13 +0000 (GMT) (envelope-from ashcs@ucla.edu) Received: from mail.ucla.edu (mail.ucla.edu [169.232.48.135]) by smtp.ucla.edu (8.13.1/8.13.1) with ESMTP id j175X9Uc000925 for ; Sun, 6 Feb 2005 21:33:09 -0800 Received: from ash (s226-88.resnet.ucla.edu [164.67.226.88]) (authenticated bits=0) by mail.ucla.edu (8.13.3/8.13.3) with ESMTP id j175XCGx016247 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Sun, 6 Feb 2005 21:33:12 -0800 Message-ID: <002901c50cd6$89db4330$58e243a4@ash> From: "Ashwin Chandra" To: Date: Sun, 6 Feb 2005 21:33:22 -0800 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.2180 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 X-Probable-Spam: no X-Spam-Hits: 1.054 X-Spam-Score: * X-Scanned-By: smtp.ucla.edu Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.1 Subject: Opening files in Kernel Mode: help X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Feb 2005 05:33:13 -0000 So this is the code I got from help from you hackers out there and = templates in the /kern library. This compiles but causes a kernel panic. = I was wondering if any of you knew why this was happening and if I am = calling all the virtual node functions correctly? =20 ***********************CODE BELOW************************ register struct proc *p; struct nameidata nd; int flags =3D FWRITE | O_CREAT; struct ucred *uc; static struct ucred *acctcred; char data[1000]; acctcred =3D crhold(curthread->td_ucred); uc =3D crhold(acctcred); NDINIT(&nd, CREATE, FOLLOW, UIO_SYSSPACE, "/home/achandra/LOG", = curthread); vn_open(&nd, &flags, 0,-1); NDFREE(&nd, NDF_ONLY_PNBUF); vref(nd.ni_vp); VOP_LEASE(nd.ni_vp, curthread, uc, LEASE_WRITE); sprintf(data, "%s", "asdsada"); vn_rdwr(UIO_WRITE, nd.ni_vp, (caddr_t)data, strlen(data), (off_t)0, UIO_SYSSPACE, IO_APPEND|IO_UNIT, uc, NOCRED, (int *)0, curthread); vrele(nd.ni_vp); crfree(uc); vn_close(nd.ni_vp, flags, curthread->td_ucred, curthread);