rbd: add layering & deep flattenfeatures for groupsnapshot image

Signed-off-by: Rakshith R <rar@redhat.com>
(cherry picked from commit 50b2a0528e)
This commit is contained in:
Rakshith R 2024-12-05 19:47:55 +05:30 committed by mergify[bot]
parent 12c9a8c2e0
commit 8fcb438794
2 changed files with 8 additions and 2 deletions

View File

@ -629,8 +629,10 @@ func flattenTemporaryClonedImages(ctx context.Context, rbdVol *rbdVolume, cr *ut
}
// If we start flattening all the snapshots at one shot the volume
// creation time will be affected,so we will flatten only the extra
// snapshots.
extraSnapshots := min(len(snaps)-int(minSnapshotsOnImageToStartFlatten), len(children))
// snapshots. Use the min of the extra snapshots and the number of children
// to avoid scenario where number of children are less than the extra snapshots.
// This occurs when the child images are in trash and not yet deleted.
extraSnapshots := min((len(snaps) - int(minSnapshotsOnImageToStartFlatten)), len(children))
children = children[:extraSnapshots]
err = flattenClonedRbdImages(
ctx,

View File

@ -276,6 +276,10 @@ func (rv *rbdVolume) NewSnapshotByID(
return nil, err
}
// set the features for the clone image.
f := []string{librbd.FeatureNameLayering, librbd.FeatureNameDeepFlatten}
rv.ImageFeatureSet = librbd.FeatureSetFromNames(f)
options, err := rv.constructImageOptions(ctx)
if err != nil {
return nil, err