* read /proc/self/mountinfo to detect already mounted targets and reuse their metadata
* reject conflicting mounts by source, allowing reruns without duplicating entries
* return mount results sorted by target for deterministic downstream behavior
* write subvolume and /var/mounts/{UUID} entries to fstab when requested
- Document defaults-only configuration, kernel topology override, and deprecated CLI flags in README
- Mark schema doc as deprecated per ADR-0002
- Warn that --topology/--config are ignored; adjust loader/main/context flow
- Refactor orchestrator run() to auto-select mount/apply, reuse state when already provisioned, and serialize topology via Display
- Add Callgraph/FUNCTION_LIST/ADR docs tracking the new behavior
- Derive Eq for Topology to satisfy updated CLI handling
- Orchestrator:
- Add mutually exclusive modes: --mount-existing, --report-current, --apply
- Wire mount-existing/report-current flows and JSON summaries
- Reuse mount planning/application; never mount ESP
- Context builders for new flags
(see: src/orchestrator/run.rs:1)
- CLI:
- Add --mount-existing and --report-current flags
- Keep -t/--topology (ValueEnum) as before
(see: src/cli/args.rs:1)
- FS:
- Implement probe_existing_filesystems() using blkid to detect ZOSDATA/ZOSBOOT and dedupe by UUID
(see: src/fs/plan.rs:1)
- Config loader:
- Precedence now: CLI flags > kernel cmdline (zosstorage.topo) > built-in defaults
- Read kernel cmdline topology only if CLI didn’t set -t/--topology
- Default topology set to DualIndependent
- Do not read /etc config by default in initramfs
(see: src/config/loader.rs:1)
- Main:
- Wire new Context builder flags
(see: src/main.rs:1)
Rationale:
- Enables running from in-kernel initramfs with no config file
- Topology can be selected via kernel cmdline (zosstorage.topo) or CLI; CLI has priority