snapuserd: Refactor client to allow persistent connections.
This refactors SnapuserdClient so it retains a connection for its lifetime. This allows SnapshotManager to ensure the daemon is running and hold a connection open across all of its operations. The main impetus of this change is to remove the ambiguity between first and second-stage sockets. SnapshotManager should only ever connect to the first-stage socket during first-stage init, or, to initiate the "transition" step during second-stage init. The transition steps are roughly: (1) Start second-stage daemon. (2) Load new device-mapper tables. (3) Connect second-stage daemon to new dm-user devices. (4) Activate the new tables, flushing IO to the first-stage daemon. (5) Send a signal to the first-stage daemon to exit. This patch makes it easier to hold these two separate connections. Bug: 168554689 Test: manual test Change-Id: I51cb9adecffb19143ed685e0c33456177ec3d81f
Loading
Please register or sign in to comment