Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 77e36c89 authored by Marcin Radomski's avatar Marcin Radomski
Browse files

init: restore mounts under /sys after enter_namespace

Entering a network namespace requires remounting sysfs to update contents of
/sys/class/net whose contents depend on the network namespace of the process
that mounted it rather than the effective network namespace of the reading
process.

A side effect of the remounting is unmounting all filesystems mounted under
/sys. In particular, unmounting tracefs (/sys/kernel/tracing) prevents
collecting ATrace traces from any init service that uses `enter_namespace
net`.

This CL makes init iterate over all current mounts and remount anything
under /sys/ after it remounts /sys for the service being started.

A minor change is to pass "sysfs" rather than the empty string as the
block device argument to mount. Otherwise, /proc/$PID/mounts inside the
process in network namespace contains a sysfs entry with no block device
name, which confuses the Fstab parser into thinking that /sys is the
block device, which made the included test fail.

Bug: 399071958
Test: th (test included)
Test: manual check: capture perfetto trace for a process started inside
Test: a network namespace, see ATrace traces showing up that weren't
Test: there before
Change-Id: Icc1e763dff115a06ac23b37f14cfbdd328bbe659
parent efe22769
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment