Damien Zammit, le mar. 09 févr. 2021 21:42:29 +1100, a ecrit: > However, I'm still getting very stuck because I don't seem to have a > "bootstrap" port for fsys_startup() in netfs for pci startup. > Where would the bootstrap port come from to do the arbiter netfs_startup -> > fsys_startup? > As the arbiter netfs IS the bootstrap filesystem, bootstrap is NULL, or am I > confused?
It is NULL, yes. > Do I need to implement some kind of netfs_S_fsys_* ? Very probably, yes: I updated http://darnassus.sceen.net/~hurd-web/hurd/bootstrap/ which was saying TODO: we want diskfs_startup_diskfs to also call task_get_bootstrap_port to call fsys_startup on its real bootstrap port once diskfs_start_bootstrap is finished, for bootstrap translators before the root filesystem to know when the root filesystem is ready, and register themselves as translators in the root filesystem, register for shutdown notification, etc. and now says diskfs_start_bootstrap is complete, we are back to diskfs_startup_diskfs, which checks whether ext2fs was given a bootstrap port, i.e. a translator was started before ext2fs. If so, it calls diskfs_call_fsys_startup which creates a new control port and passes it do a call to fsys_startup on the bootstrap port, so the translator that was started before ext2fs gets access to the ext2fs filesystem. That translator however does not return any real port, since we are not exposing the ext2fs filesystem in that translator's filesystem, but rather the converse. That translator will wait for an fsys_init call to complete its own initialization and set itself as an active translator within the ext2fs filesystem. that was for the rumpdisk->ext2fs case, but we'll need the same for the pci-arbiter->rumpdisk case as well, i.e. make trivfs_S_fsys_startup call fsys_startup on its own bootstrap port (thus pci-arbiter), so pci-arbiter gets the control port of the ext2fs FS. Ditto for rumpdisk's fsys_init, that should call fsys_init on its bootstrap port, so that pci-arbiter can eventually configure its own proc, auth, crdir, cwdir, and set itself as active translator in the root filesystem. Samuel