git: 7b5a1c39f1e6 - main - vfs: bring vfs_lookup() description comment up to date

From: Warner Losh <imp_at_FreeBSD.org>
Date: Tue, 27 Jun 2023 22:34:59 UTC
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=7b5a1c39f1e65737b8c29de46aecb88f90c7c33d

commit 7b5a1c39f1e65737b8c29de46aecb88f90c7c33d
Author:     Igor Ostapenko <pm@igoro.pro>
AuthorDate: 2023-06-27 22:31:50 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2023-06-27 22:34:02 +0000

    vfs: bring vfs_lookup() description comment up to date
    
    Signed-off-by: Igor Ostapenko <pm@igoro.pro>
    Reviewed by: imp, mhorne
    Pull Request: https://github.com/freebsd/freebsd-src/pull/737
---
 sys/kern/vfs_lookup.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/sys/kern/vfs_lookup.c b/sys/kern/vfs_lookup.c
index 52fc3ecbd01d..73df48e96efe 100644
--- a/sys/kern/vfs_lookup.c
+++ b/sys/kern/vfs_lookup.c
@@ -879,27 +879,27 @@ vfs_lookup_failifexists(struct nameidata *ndp)
  *
  * The pathname is pointed to by cn_nameptr and is of length ni_pathlen.
  * The starting directory is taken from ni_startdir. The pathname is
- * descended until done, or a symbolic link is encountered. The variable
- * ni_more is clear if the path is completed; it is set to one if a
+ * descended until done, or a symbolic link is encountered. The cn_flags
+ * has ISLASTCN or'ed if the path is completed or ISSYMLINK or'ed if a
  * symbolic link needing interpretation is encountered.
  *
- * The flag argument is LOOKUP, CREATE, RENAME, or DELETE depending on
+ * The cn_nameiop is LOOKUP, CREATE, RENAME, or DELETE depending on
  * whether the name is to be looked up, created, renamed, or deleted.
  * When CREATE, RENAME, or DELETE is specified, information usable in
  * creating, renaming, or deleting a directory entry may be calculated.
- * If flag has LOCKPARENT or'ed into it, the parent directory is returned
- * locked. If flag has WANTPARENT or'ed into it, the parent directory is
+ * If cn_flags has LOCKPARENT or'ed into it, the parent directory is returned
+ * locked. If it has WANTPARENT or'ed into it, the parent directory is
  * returned unlocked. Otherwise the parent directory is not returned. If
- * the target of the pathname exists and LOCKLEAF is or'ed into the flag
+ * the target of the pathname exists and LOCKLEAF is or'ed into the cn_flags
  * the target is returned locked, otherwise it is returned unlocked.
- * When creating or renaming and LOCKPARENT is specified, the target may not
- * be ".".  When deleting and LOCKPARENT is specified, the target may be ".".
  *
  * Overall outline of lookup:
  *
+ *	handle degenerate case where name is null string
+ *
  * dirloop:
  *	identify next component of name at ndp->ni_cnd.cn_nameptr
- *	handle degenerate case where name is null string
+ *	handle .. special cases related to capabilities, chroot, jail
  *	if .. and crossing mount points and on mounted filesys, find parent
  *	call VOP_LOOKUP routine for next component name
  *	    directory vnode returned in ni_dvp, unlocked unless LOCKPARENT set
@@ -907,6 +907,7 @@ vfs_lookup_failifexists(struct nameidata *ndp)
  *	if result vnode is mounted on and crossing mount points,
  *	    find mounted on vnode
  *	if more components of name, do next level at dirloop
+ *	if VOP_LOOKUP returns ERELOOKUP, repeat the same level at dirloop
  *	return the answer in ni_vp, locked if LOCKLEAF set
  *	    if LOCKPARENT set, return locked parent in ni_dvp
  *	    if WANTPARENT set, return unlocked parent in ni_dvp