<dec f='src/src/sys/ufs/ufs/ufs_extern.h' l='121' type='int ufs_direnter(struct vnode * , const struct ufs_lookup_results * , struct vnode * , struct direct * , struct componentname * , struct buf * )'/>
<def f='src/src/sys/ufs/ufs/ufs_lookup.c' l='1056' ll='1065' type='int ufs_direnter(struct vnode * dvp, const struct ufs_lookup_results * ulr, struct vnode * tvp, struct direct * dirp, struct componentname * cnp, struct buf * newdirbp)'/>
<doc f='src/src/sys/ufs/ufs/ufs_lookup.c' l='1027'>/*
 * Write a directory entry after a call to namei, using the parameters
 * that ufs_lookup left in nameidata and in the ufs_lookup_results.
 *
 * DVP is the directory to be updated. It must be locked.
 * ULR is the ufs_lookup_results structure from the final lookup step.
 * TVP is not used. (XXX: why is it here? remove it)
 * DIRP is the new directory entry contents.
 * CNP is the componentname from the final lookup step.
 * NEWDIRBP is not used and (XXX) should be removed. The previous
 * comment here said it was used by the now-removed softupdates code.
 *
 * The link count of the target inode is *not* incremented; the
 * caller does that.
 *
 * If ulr-&gt;ulr_count is 0, ufs_lookup did not find space to insert the
 * directory entry. ulr_offset, which is the place to put the entry,
 * should be on a block boundary (and should be at the end of the
 * directory AFAIK) and a fresh block is allocated to put the new
 * directory entry in.
 *
 * If ulr-&gt;ulr_count is not zero, ufs_lookup found a slot to insert
 * the entry into. This slot ranges from ulr_offset to ulr_offset +
 * ulr_count. However, this slot may already be partially populated
 * requiring compaction. See notes below.
 *
 * Furthermore, if ulr_count is not zero and ulr_endoff is not the
 * same as i_size, the directory is truncated to size ulr_endoff.
 */</doc>
<use f='src/src/sys/ufs/ufs/ufs_rename.c' l='395' u='c' c='ufs_gro_rename'/>
<use f='src/src/sys/ufs/ufs/ufs_vnops.c' l='838' u='c' c='ufs_link'/>
<use f='src/src/sys/ufs/ufs/ufs_vnops.c' l='905' u='c' c='ufs_whiteout'/>
<use f='src/src/sys/ufs/ufs/ufs_vnops.c' l='1051' u='c' c='ufs_mkdir'/>
<use f='src/src/sys/ufs/ufs/ufs_vnops.c' l='1821' u='c' c='ufs_makeinode'/>
