These are generated by the filesystem implementation and returned to the
kernel in response to a call to Lookup, Create, MkNod, MkDir or
SymLink. The kernel will then pass these numbers back to the filesystem
implementation when it needs to refer to a given file. Every request has
an associated INodeNo, accessible as Request::nodeid.
Every time the kernel receives a given inode number in a response to a
Lookup, Create, MkNod, MkDir or SymLink request it increments an
internal counter for that inode. The filesystem implementation should do
the same. When the kernel is no longer interested in this inode it will
send a Forget message with that counter. The filesystem implementation
should decrement its own counter and if it reaches 0 then the inode number
may be recycled and your filesystem implementation may clean up its
internal data-structures relating to that inode.