pub fn assign_installed_rows(
namespace: &[ContainerMount],
installations: &mut [Installation],
) -> boolExpand description
Assign each row the plan created to the installation that created it, for
a plan installed as the namespace’s last mounts, one mount operation after
another, in a namespace whose propagation from the host was cut (made
private) before the plan’s first mount, so that no host row can follow
it: namespace lists rows in creation order (the kernel’s row order), so
the plan’s rows are its end, each installation’s together and in plan
order, each starting with the one row the operation created at its target
(a recursive bind’s copies of the mounts below its source follow it).
Walking back from the last row, a row is
- the first row of the latest installation still open at whose mountpoint it is, which closes that installation; or
- a copy the latest open installation’s recursive bind made, if it is below that installation’s mountpoint and the row it copies exists; or
- no installation’s (a row a symbolic link redirected, a propagated copy), which is not admitted.
The walk ends at the first installation’s row: every row before it is the host’s. Returns whether it got there; if not, the plan’s rows cannot be told from the host’s. An installation with no mountpoint (a remount, which creates no row) takes none.