To preserve the vnode-inode relationship, the LFS guarantees the
following:
- On every operation, the inode, represented by the PFS's token
in Token_structure, has not been inactivated.
- When the PFS is called to break the relationship (via
vn_inactive at the time that a vnode is being freed), the LFS ensures
that there are no other operations in progress against this vnode
and, by extension, against the inode.
There are, in fact, no operations
in progress against any file that is in the same mounted file system
as the file that is being inactivated. This is so that no other operation
may be attempting to find or recreate the inode while it is being
deleted.
- After a vn_inactive, the PFS does not receive any additional vn_
calls for that inode until the PFS creates a new vnode-inode binding
for this same object as a result of a vn_lookup or vfs_vget call.