Commit 33681d8
authored
fix(namespace): make recursive propagation changes atomic (#2112)
Prepare recursive propagation changes as an explicit transaction while holding the mount lifecycle lock. Snapshot the target subtree and all affected peer, master, and slave relationships, reserve fallible resources up front, simulate Linux propagation semantics privately, and publish only fully prepared final state.
Match Linux 6.6 behavior for DFS mount traversal, next-peer ring selection, exact mount-root identity, and slave-list rewiring. Keep group ID release allocation-free with IDA-backed hole tracking and avoid full-graph scans by maintaining direct slave adjacency.
Add deterministic failure-path coverage and DragonOS guest tests for recursive propagation semantics, atomic mountinfo snapshots, namespace copying, and concurrent topology changes.
Fixes #2098
Signed-off-by: longjin <longjin@dragonos.org>1 parent 74e8319 commit 33681d8
3 files changed
Lines changed: 1360 additions & 82 deletions
File tree
- kernel/src
- filesystem/vfs/mount
- process/namespace
- user/apps/tests/dunitest/suites/normal
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
57 | 62 | | |
58 | 63 | | |
59 | 64 | | |
| |||
0 commit comments