lkml.org 
[lkml]   [1997]   [Nov]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: VFS
Date
[CC'd to linux-kernel and linux_udf as this might be useful]

> > You must have missed my message, and never looked at the NFS code.
> > For a unique inode number, cast the memory address of the inode.
>
> I did not miss your message, but I never looked at the NFS code.
>
> If you use memory addresses, you do you make inode numbers constant
> after rebooting, or even between subsequent open(2) calls?

Virtual inode numbers will change everytime iget() is called, they
are only constant as long as the inode is in use [which is the only
time an inode number really matters].

open() looks up inodes through the dcache, which holds inodes
busy (i_count > 0). If the inode isn't in the dcache, then it
is looked up from scratch and will get a new virtual inode number.

For "special" fixed inode numbers, like say for the fs root,
you can use virtual inode numbers that are addresses in the first
page of memory [which are _never_ normally accessed - that page is
reserved in Linux for throwing page faults from null pointers].
This should work on all architectures too. Otherwise, the virtual
inode number of the root directory [and other special inodes]
can be kept in [or located through] the super block "u" field.

The only thing changing inode numbers screws up are the "ls -i"
output (the inode info is meaningless), and VFS messages that
refer to inode numbers.

P.S. I'm not a VFS guru, yet, but I'm sure trying hard to learn :-)

--
Andrew E. Mileski mailto:aem@netcom.ca

\
 
 \ /
  Last update: 2005-03-22 13:40    [W:0.112 / U:0.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site