mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-12-18 02:50:30 +00:00
rbd: free snapshot resources after allocation
Not all snapshot objects are free'd correctly after they were allocated. It is possible that some connections to the Ceph cluster were never closed. This does not need to be a noticeable problem, as connections are re-used where possible, but it isn't clean either. Signed-off-by: Niels de Vos <ndevos@ibm.com>
This commit is contained in:
parent
18162c71bc
commit
7b2b125b18
@ -348,6 +348,12 @@ func (cs *ControllerServer) CreateVolume(
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if parentVol != nil {
|
||||
defer parentVol.Destroy()
|
||||
}
|
||||
if rbdSnap != nil {
|
||||
defer rbdSnap.Destroy()
|
||||
}
|
||||
|
||||
err = updateTopologyConstraints(rbdVol, rbdSnap)
|
||||
if err != nil {
|
||||
@ -655,6 +661,7 @@ func (cs *ControllerServer) createVolumeFromSnapshot(
|
||||
|
||||
return status.Error(codes.Internal, err.Error())
|
||||
}
|
||||
defer rbdSnap.Destroy()
|
||||
|
||||
// update parent name(rbd image name in snapshot)
|
||||
rbdSnap.RbdImageName = rbdSnap.RbdSnapName
|
||||
@ -1458,6 +1465,7 @@ func (cs *ControllerServer) DeleteSnapshot(
|
||||
|
||||
return nil, status.Error(codes.Internal, err.Error())
|
||||
}
|
||||
defer rbdSnap.Destroy()
|
||||
|
||||
// safeguard against parallel create or delete requests against the same
|
||||
// name
|
||||
|
Loading…
Reference in New Issue
Block a user