mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-26 16:28:15 +00:00
6bdfdd164a
refactor(ecstore,heal): return the local disk map as an owned read guard (Phase 5 prep) Prerequisite for the Phase 5 disk-registry migration (backlog#939): the disk map cannot move from the process global into the per-instance InstanceContext while callers depend on a `'static` read guard borrowed from the global. Change `local_disk_map_read` to return an owned guard (`OwnedRwLockReadGuard`) via `Arc::read_owned` instead of `RwLockReadGuard<'static, _>`: - ecstore `runtime::sources::local_disk_map_read` now returns `OwnedRwLockReadGuard<..>` (holds an Arc clone of the lock), not a `'static` borrow of `GLOBAL_LOCAL_DISK_MAP`. - heal's forwarding accessor and its callers (which hold the guard across `.await` while clearing/writing per-disk markers) keep identical behavior — the owned guard derefs to the same map, so iteration is unchanged. This decouples the heal crate from the global's `'static` lifetime so a later PR can source the map from the current instance's context. Single-instance behavior is byte-for-byte unchanged; the same read lock is held across the same awaits. Verification: cargo test -p rustfs-heal (201 tests green), cargo clippy -p rustfs-ecstore -p rustfs-heal --all-targets (clean), make pre-commit (pass). Refs: backlog#939 (Phase 5, disk-registry prerequisite)