mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-25 15:02:45 +00:00
vc: Remove device when AddDevice encounters error
Fixes #2295 Signed-off-by: Ted Yu <yuzhihong@gmail.com>
This commit is contained in:
parent
d054556f60
commit
9c0872dc7e
@ -1892,17 +1892,28 @@ func (s *Sandbox) AddDevice(info config.DeviceInfo) (api.Device, error) {
|
||||
return nil, fmt.Errorf("device manager isn't initialized")
|
||||
}
|
||||
|
||||
var err error
|
||||
b, err := s.devManager.NewDevice(info)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer func() {
|
||||
if err != nil {
|
||||
s.devManager.RemoveDevice(b.DeviceID())
|
||||
}
|
||||
}()
|
||||
|
||||
if err := s.devManager.AttachDevice(b.DeviceID(), s); err != nil {
|
||||
if err = s.devManager.AttachDevice(b.DeviceID(), s); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer func() {
|
||||
if err != nil {
|
||||
s.devManager.DetachDevice(b.DeviceID(), s)
|
||||
}
|
||||
}()
|
||||
|
||||
if !s.supportNewStore() {
|
||||
if err := s.storeSandboxDevices(); err != nil {
|
||||
if err = s.storeSandboxDevices(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user