From owner-freebsd-fs Wed Aug 7 18:13:46 2002 Delivered-To: freebsd-fs@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CAE7237B400 for ; Wed, 7 Aug 2002 18:13:42 -0700 (PDT) Received: from cs.rpi.edu (mumble.cs.rpi.edu [128.213.8.16]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0AB9D43E42 for ; Wed, 7 Aug 2002 18:13:42 -0700 (PDT) (envelope-from crossd@cs.rpi.edu) Received: from monica.cs.rpi.edu (monica.cs.rpi.edu [128.213.7.3]) by cs.rpi.edu (8.9.3/8.9.3) with ESMTP id VAA00770; Wed, 7 Aug 2002 21:13:39 -0400 (EDT) Received: from monica.cs.rpi.edu (crossd@localhost) by monica.cs.rpi.edu (8.11.6/8.11.6) with ESMTP id g781Ddu79224; Wed, 7 Aug 2002 21:13:39 -0400 (EDT) (envelope-from crossd@monica.cs.rpi.edu) Message-Id: <200208080113.g781Ddu79224@monica.cs.rpi.edu> To: Terry Lambert Cc: "David E. Cross" , Kelly Yancey , fs@FreeBSD.ORG, guptar@cs.rpi.edu, crossd@cs.rpi.edu Subject: Re: vnodes (UFS journaling)? In-Reply-To: Message from Terry Lambert of "Wed, 07 Aug 2002 17:54:05 PDT." <3D51C12D.354F6D99@mindspring.com> References: <20020807170230.Y6264-100000@gateway.posi.net> <200208080037.g780b9H79114@monica.cs.rpi.edu> <3D51C12D.354F6D99@mindspring.com> Date: Wed, 07 Aug 2002 21:13:39 -0400 From: "David E. Cross" Sender: owner-freebsd-fs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org What we are currently doing is at filesystem mount we construct a vnode-pointer to the journal file. Then we use that vp to use VOP_WRITE (and maybe VOP_READ in the future). I take it that this isn't kosher, and we will need to rework this to use low-level UFS calls? > Your question still makes no sense. > > What does doing this have to do with vnodes? > > It sounds like you are trying to use a vnode to represent a > journal entry, rather than an abstract reference to a file > in a file system. > > Vnodes are the OS's idea of a file stream. It's the VFS's > job to translate a vnode argument to a file stream operation > (VOP_*) into a reference to a VFS implementation-specific > backing object (e.g. an inode reference), and it's *that* > object off of which your journal extents have to be referenced. > > Basically, this comes down to your internal implementation > of VOP_GETPAGES, VOP_READ, VOP_PUTPAGES, and VOP_WRITE, and > how these get translated into journal references and writes, > respectively. > > Maybe the problem is that you are using the default version > of the {get|put}pages, such that vmo_bject_t page references > are translated into raw device page writes, instead of going > thorugh your VFS specific versions and turning into journal > entries as a result of pages being dirtied? -- David Cross | email: crossd@cs.rpi.edu Lab Director | Rm: 308 Lally Hall Rensselaer Polytechnic Institute, | Ph: 518.276.2860 Department of Computer Science | Fax: 518.276.4033 I speak only for myself. | WinNT:Linux::Linux:FreeBSD To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-fs" in the body of the message