Page MenuHomeFreeBSD

namei: Add a comment explaining ISRESTARTED flag
ClosedPublic

Authored by dchagin on Jun 12 2023, 8:38 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Dec 31, 7:00 PM
Unknown Object (File)
Mon, Dec 29, 6:39 AM
Unknown Object (File)
Thu, Dec 25, 10:45 AM
Unknown Object (File)
Dec 2 2025, 9:41 AM
Unknown Object (File)
Nov 20 2025, 12:33 AM
Unknown Object (File)
Nov 10 2025, 2:26 AM
Unknown Object (File)
Nov 9 2025, 4:39 AM
Unknown Object (File)
Nov 7 2025, 6:06 AM
Subscribers

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

sys/kern/vfs_lookup.c
85

I think it should be mention what is restarted. You are switching from ABI root to the actual root.

Done, first version was:

+/*
+ * The ports infrastructure for the non-native (Linux) ABI installs it's
+ * files under the $LOCAL_BASE and the native ABI shares some common files
+ * with a non-native, ie, /etc/passwd. Therefore, a non-native ABI needs a
+ * special technics to dynamically reroot lookup operations.
+ * Dinamic reroot means restart namei, ie, at first, namei() lookups the
+ * file in /ABI root/original-path. If that fails, the lookup is done in
+ * /actual root/original-path.
+ * The namei() can be restarted only if a ABI specifies the ABI root via
+ * a call to pwd_altroot() during exec into that ABI.
+ *
+ * Prepare namei() to restart. Reset components to its original state and set
+ * ISRESTARTED flag which signals the underlying lookup code to change the root
+ * from ABI root to actual root and prevents a further restarts.
+ */

I thought it was too much))

This revision is now accepted and ready to land.Jun 12 2023, 11:11 PM