From owner-freebsd-fs Thu Aug 22 21:20:39 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 A458A37B400 for ; Thu, 22 Aug 2002 21:20:35 -0700 (PDT) Received: from cs.rpi.edu (mumble.cs.rpi.edu [128.213.8.16]) by mx1.FreeBSD.org (Postfix) with ESMTP id C8FD043E65 for ; Thu, 22 Aug 2002 21:20:34 -0700 (PDT) (envelope-from guptar@cs.rpi.edu) Received: from jenolen.cs.rpi.edu (jenolen.cs.rpi.edu [128.213.12.42]) by cs.rpi.edu (8.9.3/8.9.3) with ESMTP id AAA23778; Fri, 23 Aug 2002 00:20:32 -0400 (EDT) Received: from localhost (guptar@localhost) by jenolen.cs.rpi.edu (8.11.6+Sun/8.9.3) with ESMTP id g7N4KV309118; Fri, 23 Aug 2002 00:20:31 -0400 (EDT) X-Authentication-Warning: jenolen.cs.rpi.edu: guptar owned process doing -bs Date: Fri, 23 Aug 2002 00:20:31 -0400 (EDT) From: Rashim Gupta To: Alfred Perlstein Cc: , "David E. Cross" Subject: Re: Block free question In-Reply-To: <20020823033558.GY75574@elvis.mu.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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 Hi Alfred Thanks for the response. I tried the following piece of code based on your suggestions: VFS_VGET(ba->devvp->v_rdev->si_mountpoint, ba->inum, 0, &myvnode); Here, ba is a structure which contains the inode number, the devvp pointer, and the block number. But on compiling this, I get the follwoing error: "dereferencing pointer to incomplete type". Any suggestions how I proceed from here. Thanks in advance Rashim On Thu, 22 Aug 2002, Alfred Perlstein wrote: > * Rashim Gupta [020822 20:28] wrote: > > > > Hi > > As you all know we are working on logging the FS metadata. We are stuck > > while we are trying to free a block . When we free a block, we need to > > write this block number into the log file. We are storing the handle to > > the journal file in the ufsmount structure, how do we get access to that > > in ffs_blkfree? We have available to us "struct fs *fs", but there > > doesn't seem to be a way to get back to the ufsmount from there. We also > > have struct vnode *devvp, but that points to the /dev/foo entry (devfs), > > so its not usefull. The last bits of information we have are the > > block-number and inode-number, which I don't see an easy O(reasonable) way > > to extract the ufsmount information. > > > > As a status update we have the following metadata operations mostly done: > > inodealloc, link, unlink, blockalloc. > > here's one way: > > you can look at devvp->v_rdev->si_mountpoint for 'struct mount', > you can use VFS_VGET on the mount along with the inode number to > get the vnode, the vnode can also give you the info you require. > > -- > -Alfred Perlstein [alfred@freebsd.org] [#bsdcode/efnet/irc.prison.net] > 'Instead of asking why a piece of software is using "1970s technology," > start asking why software is ignoring 30 years of accumulated wisdom.' To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-fs" in the body of the message