mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-05 04:47:43 +00:00
8185376b90
* refactor(ecstore): migrate config globals into ECStore struct fields Phase 2 of global singleton consolidation. Add server_config and storage_class fields to ECStore, sharing the same underlying data as the process-global LazyLock statics. New ECStore fields: - server_config: RwLock<Option<Config>> - storage_class: RwLock<storageclass::Config> New async accessor methods: - get_server_config() / set_server_config() - get_storage_class() / set_storage_class() Fields initialized with defaults in ECStore::new(), synced from globals after init() completes. Global functions preserved for backward compatibility. 1160 tests pass, clippy clean, full workspace compiles. * fix: address PR #3219 review comments - delegate to globals Accessors now delegate to process-global statics to avoid state drift: - get_server_config() delegates to get_global_server_config() - set_server_config() updates both global and local field - get_storage_class() delegates to get_global_storage_class() - set_storage_class() updates both global and local field - Removed stale sync code from init() - Changed fields to std::sync::RwLock for sync access 1160 tests pass. * fix: correct import order for cargo fmt * fix: simplify config accessors - delegate to globals without local state Remove local server_config and storage_class fields from ECStore. Accessors now purely delegate to process-global statics, eliminating the state drift risk identified in review. 1160 tests pass, formatting clean.