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)
Sun, Aug 23, 5:52 AM
Unknown Object (File)
Sat, Aug 22, 4:08 AM
Unknown Object (File)
Tue, Aug 18, 12:02 AM
Unknown Object (File)
Mon, Aug 17, 8:51 AM
Unknown Object (File)
Thu, Aug 13, 1:21 AM
Unknown Object (File)
Wed, Aug 12, 5:14 PM
Unknown Object (File)
Tue, Aug 11, 3:52 PM
Unknown Object (File)
Mon, Aug 10, 11:45 AM
Subscribers

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 52015
Build 48906: arc lint + arc unit

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