private async Task BackupAllPartitions() { var version = await m_pstore.CreateNewVersion(); // Leader, distribute backup tasks to masters. var task_id = Guid.NewGuid(); var masters = m_dmc.m_cloudidx.GetMasters(); try { using (var req = new BackupTaskInformationWriter(task_id, version)) { var rsps = await masters.Select(m => m.PersistedSavePartition(req)).Unwrap(); bool fail = false; foreach (var rsp in rsps) { if (rsp.errno != Errno.E_OK) { fail = true; } rsp.Dispose(); } if (fail) { throw new Exception(); } } await m_pstore.CommitVersion(version); } catch { await m_pstore.DeleteVersion(version); throw new BackupException(); } }