MCPcopy Index your code
hub / github.com/containerd/containerd / RemoveDevice

Method RemoveDevice

plugins/snapshots/devmapper/pool_device.go:545–565  ·  view source on GitHub ↗

RemoveDevice completely wipes out thin device from thin-pool and frees it's device ID

(ctx context.Context, deviceName string)

Source from the content-addressed store, hash-verified

543
544// RemoveDevice completely wipes out thin device from thin-pool and frees it's device ID
545func (p *PoolDevice) RemoveDevice(ctx context.Context, deviceName string) error {
546 info, err := p.metadata.GetDevice(ctx, deviceName)
547 if err != nil {
548 return fmt.Errorf("can't query metadata for device %q: %w", deviceName, err)
549 }
550
551 if err := p.DeactivateDevice(ctx, deviceName, false, true); err != nil {
552 return err
553 }
554
555 if err := p.deleteDevice(ctx, info); err != nil {
556 return err
557 }
558
559 // Remove record from meta store and free device ID
560 if err := p.metadata.RemoveDevice(ctx, deviceName); err != nil {
561 return fmt.Errorf("can't remove device %q metadata from store after removal: %w", deviceName, err)
562 }
563
564 return nil
565}
566
567func (p *PoolDevice) deleteDevice(ctx context.Context, info *DeviceInfo) error {
568 if err := p.transition(ctx, info.Name, Removing, Removed, func() error {

Callers 1

rollbackActivateMethod · 0.95

Calls 3

DeactivateDeviceMethod · 0.95
deleteDeviceMethod · 0.95
GetDeviceMethod · 0.80

Tested by

no test coverage detected