diff --git a/pkg/frontend/blk.go b/pkg/frontend/blk.go index 2bb6367c..36a87276 100644 --- a/pkg/frontend/blk.go +++ b/pkg/frontend/blk.go @@ -95,7 +95,7 @@ func (s *Server) CreateVirtioBlk(ctx context.Context, in *pb.CreateVirtioBlkRequ } // DeleteVirtioBlk deletes a Virtio block device -func (s *Server) DeleteVirtioBlk(_ context.Context, in *pb.DeleteVirtioBlkRequest) (*emptypb.Empty, error) { +func (s *Server) DeleteVirtioBlk(ctx context.Context, in *pb.DeleteVirtioBlkRequest) (*emptypb.Empty, error) { log.Printf("DeleteVirtioBlk: Received from client: %v", in) controller, ok := s.Virt.BlkCtrls[in.Name] if !ok { @@ -120,6 +120,16 @@ func (s *Server) DeleteVirtioBlk(_ context.Context, in *pb.DeleteVirtioBlkReques log.Printf("Could not delete: %v", in) return nil, spdk.ErrUnexpectedSpdkCallResult } + + if s.needToSetVirtioBlkQos(controller) { + if _, err := s.Virt.qosProvider.DeleteQosVolume(ctx, + &pb.DeleteQosVolumeRequest{ + Name: s.qosVolumeIDFromVirtioBlkName(controller.Name), + }); err != nil { + log.Printf("error: %v", err) + return nil, err + } + } delete(s.Virt.BlkCtrls, controller.Name) return &emptypb.Empty{}, nil }