Hi, On Mon, Jun 26, 2023 at 06:13:17PM -0400, Theodore Preduta wrote: > Is it possible to create a vnode for a regular file in a file system without > linking the vnode to any directory, so that it disappears when all open file > descriptors to it are closed? (As far as I can tell, this isn't possible > with any of the vn_* or VOP_* functions?)
That's completely normal. If a file is created in a file system and its unlinked its effectively in this state. If you want a code reference, look at the system file handling of the UDF file system. A system file is loaded with udf_get_node() (sys/fs/udf/udf_subc.c) that looks up the vnode and if its not in the cache it calls udf_loadvnode() (trough vfs_loadvnode) that loads a newly created vnode representing a file that is not linked to any directory. It's up to the VFS_NEWVNODE() implementation to accept a NULL dvp or not. As long as the vnode is referred, see UDF_SET_SYSTEMFILE(), the vnode is kept alive. If the last reference is dropped the vnode is recycled and disappears. With regards, Reinoud