From owner-freebsd-hackers@FreeBSD.ORG Tue Nov 28 17:55:39 2006 Return-Path: X-Original-To: freebsd-hackers@FreeBSD.ORG Delivered-To: freebsd-hackers@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DE0EA16A403 for ; Tue, 28 Nov 2006 17:55:39 +0000 (UTC) (envelope-from quetzal@zone3000.net) Received: from mx1.sitevalley.com (sitevalley.com [209.67.60.43]) by mx1.FreeBSD.org (Postfix) with SMTP id 658D943C9D for ; Tue, 28 Nov 2006 17:55:35 +0000 (GMT) (envelope-from quetzal@zone3000.net) Received: from unknown (HELO localhost) (217.144.69.37) by 209.67.61.254 with SMTP; 28 Nov 2006 17:55:37 -0000 Date: Tue, 28 Nov 2006 19:55:09 +0200 From: Nikolay Pavlov To: freebsd-hackers@FreeBSD.ORG, rwatson@FreeBSD.ORG Message-ID: <20061128175509.GA24329@zone3000.net> Mail-Followup-To: Nikolay Pavlov , freebsd-hackers@FreeBSD.ORG, rwatson@FreeBSD.ORG References: <20061128122407.B27930@fledge.watson.org> <200611281546.kASFkKFj009715@lurza.secnetix.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200611281546.kASFkKFj009715@lurza.secnetix.de> User-Agent: Mutt/1.4.2.1i X-Operating-System: FreeBSD 6.1-RELEASE-p10 Cc: Subject: Re: vn_fullpath question. X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Nov 2006 17:55:40 -0000 On Tuesday, 28 November 2006 at 16:46:20 +0100, Oliver Fromme wrote: > Robert Watson wrote: > > Nikolay Pavlov wrote: > > > > > Hi. I am trying to extend fstat utility, so that it can use name cache to > > > recreate full path at least for text. I have found vn_fullpath function > > > usefull in this case. I am newbe in C, so it could be stupid question, but > > > could someone explaine what is "struct thread *td" in argument list of this > > > function. Is this the thread which opened the vnode initially or it is the > > > thread which searches for the vnode? i.e. fstat thread. In any case how i > > > can get this *td structure? > > > > vn_fullpath(9) is a kernel API, not a user API, so can only be invoked from > > kernel space. There are unimplemented, undocumented prototypes in the system > > call table for __getpath_fromfd() and __getpath_fromaddr(), which are > > presumably intended (with adequate permissions) to allow converting file > > descriptor indexes into paths, etc. I think Peter dropped them in, but I'm > > not sure if he's posted patches. > > Nikolay, you might want to have a look at the source code > of the "lsof" utility (ports/sysutils/lsof). It is able > to display path names for file descriptors. Maybe you can > borrow an idea from it. That's iteresting. The lsof utility is able to display original file path for me even for text vnodes. > > It might also be worth mentioning that our friends from the > DragonFly BSD project (derived from FreeBSD 4) have added > the ability to display path names to their version of the > fstat utility. You can look at their cvsweb here: > http://www.dragonflybsd.org/cvsweb/src/usr.bin/fstat/ > > However, I suspect that they have also made modifications > to the kernel interfaces in order to support the fstat > utility, so their improvements to that utility might not > be applicable to FreeBSD. Yes. They namecache API was totaly rewritten. > > Best regards > Oliver > > -- > Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing > Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd > Any opinions expressed in this message may be personal to the author > and may not necessarily reflect the opinions of secnetix in any way. > > "That's what I love about GUIs: They make simple tasks easier, > and complex tasks impossible." > -- John William Chambless -- ====================================================================== - Best regards, Nikolay Pavlov. <<<----------------------------------- ======================================================================