cleanup: destroy connections after .Copy() an other one

Everytime a connection is copied with the .Copy() function, it needs to
be destroyed once the object is not needed anymore. This was not done
consistently, a few more locations require the freeing of the connection
resources.

Signed-off-by: Niels de Vos <ndevos@ibm.com>
This commit is contained in:
Niels de Vos 2024-03-29 13:32:02 +01:00 committed by mergify[bot]
parent 4aa53c823e
commit 5a6556c4d4
3 changed files with 4 additions and 0 deletions

View File

@ -183,6 +183,8 @@ func (rv *rbdVolume) doSnapClone(ctx context.Context, parentVol *rbdVolume) erro
// generate temp cloned volume
tempClone := rv.generateTempClone()
defer tempClone.Destroy()
// snapshot name is same as temporary cloned image, This helps to
// flatten the temporary cloned images as we cannot have more than 510
// snapshots on an rbd image

View File

@ -669,6 +669,7 @@ func (cs *ControllerServer) createVolumeFromSnapshot(
parentVol := rbdSnap.toVolume()
// as we are operating on single cluster reuse the connection
parentVol.conn = rbdVol.conn.Copy()
defer parentVol.Destroy()
// create clone image and delete snapshot
err = rbdVol.cloneRbdImageFromSnapshot(ctx, rbdSnap, parentVol)

View File

@ -1662,6 +1662,7 @@ func (ri *rbdImage) flattenParent(ctx context.Context, hardLimit, softLimit uint
if parentImage == nil {
return nil
}
defer parentImage.Destroy()
return parentImage.flattenRbdImage(ctx, false, hardLimit, softLimit)
}