Fix USB/IP matched retention and snapshot ordering
This commit is contained in:
@@ -68,12 +68,13 @@ type ClientService struct {
|
||||
matches []option.USBIPDeviceMatch // empty = import all remote exports
|
||||
ops usbipOps
|
||||
|
||||
stateMu sync.Mutex
|
||||
targets []clientTarget
|
||||
assigned []string
|
||||
assignedWorkers []*clientAssignedWorker
|
||||
allWorkers map[string]*clientBusIDWorker
|
||||
allDesired map[string]struct{}
|
||||
stateMu sync.Mutex
|
||||
targets []clientTarget
|
||||
assigned []string
|
||||
assignedWorkers []*clientAssignedWorker
|
||||
allWorkers map[string]*clientBusIDWorker
|
||||
allDesired map[string]struct{}
|
||||
matchedKnownKeys map[string]DeviceKey
|
||||
|
||||
attachMu sync.Mutex // serializes vhci port pick + attach
|
||||
wg sync.WaitGroup
|
||||
@@ -425,11 +426,13 @@ func (c *ClientService) applyMatchedExportsWithRetained(entries []DeviceEntry, k
|
||||
c.stateMu.Unlock()
|
||||
return
|
||||
}
|
||||
activeCurrent := c.activeCurrentAssignmentsLocked(c.assigned, knownKeys)
|
||||
nextAssigned := assignMatchedBusIDsWithRetained(c.targets, c.assigned, entries, knownKeys, activeCurrent)
|
||||
assignmentKeys := c.matchedKeysForAssignmentLocked(entries, knownKeys)
|
||||
activeCurrent := c.activeCurrentAssignmentsLocked(c.assigned, assignmentKeys)
|
||||
nextAssigned := assignMatchedBusIDsWithRetained(c.targets, c.assigned, entries, assignmentKeys, activeCurrent)
|
||||
workers := append([]*clientAssignedWorker(nil), c.assignedWorkers...)
|
||||
previous := append([]string(nil), c.assigned...)
|
||||
c.assigned = nextAssigned
|
||||
c.retainMatchedKnownKeysLocked(assignmentKeys, entries, nextAssigned)
|
||||
c.stateMu.Unlock()
|
||||
|
||||
for i, worker := range workers {
|
||||
|
||||
Reference in New Issue
Block a user