- * func = function called to get next char of name
- * &uchar if name is in user space
- * &schar if name is in system space
- * flag = 0 if name is sought
- * 1 if name is to be created
- * 2 if name is to be deleted
+ * The FOLLOW flag is set when symbolic links are to be followed
+ * when they occur at the end of the name translation process.
+ * Symbolic links are always followed for all other pathname
+ * components other than the last.
+ *
+ * The segflg defines whether the name is to be copied from user
+ * space or kernel space.
+ *
+ * Overall outline of namei:
+ *
+ * copy in name
+ * get starting directory
+ * dirloop:
+ * copy next component of name to ndp->ni_dent
+ * handle degenerate case where name is null string
+ * if .. and on mounted filesys, find parent
+ * call lookup routine for next component name
+ * directory vnode returned in ni_dvp, unlocked unless LOCKPARENT set
+ * component vnode returned in ni_vp (if it exists), locked.
+ * if symbolic link, massage name in buffer and continue at dirloop
+ * if result inode is mounted on, find mounted on vnode
+ * if more components of name, do next level at dirloop
+ * return the answer in ni_vp as locked vnode;
+ * if LOCKPARENT set, return locked parent in ni_dvp
+ *
+ * NOTE: (LOOKUP | LOCKPARENT) currently returns the parent vnode unlocked.