Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Nov 2006 19:55:09 +0200
From:      Nikolay Pavlov <quetzal@zone3000.net>
To:        freebsd-hackers@FreeBSD.ORG, rwatson@FreeBSD.ORG
Subject:   Re: vn_fullpath question.
Message-ID:  <20061128175509.GA24329@zone3000.net>
In-Reply-To: <200611281546.kASFkKFj009715@lurza.secnetix.de>
References:  <20061128122407.B27930@fledge.watson.org> <200611281546.kASFkKFj009715@lurza.secnetix.de>

next in thread | previous in thread | raw e-mail | index | archive | help
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. <<<-----------------------------------    
======================================================================  




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061128175509.GA24329>