From f068154240c874736355311e12cf10244bd6ca73 Mon Sep 17 00:00:00 2001 From: hemalathagajendran Date: Tue, 2 Dec 2025 19:19:53 +0530 Subject: [PATCH 1/2] changes for snapshot creation in CG Signed-off-by: hemalathagajendran --- driver/csiplugin/controllerserver.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/driver/csiplugin/controllerserver.go b/driver/csiplugin/controllerserver.go index 93b15d2b1..df3275a15 100644 --- a/driver/csiplugin/controllerserver.go +++ b/driver/csiplugin/controllerserver.go @@ -3434,6 +3434,7 @@ func (cs *ScaleControllerServer) CreateSnapshot(newctx context.Context, req *csi } snapName, createNewSnap, err := cs.CheckIfNewSnapshotIsRequired(ctx, conn, filesystemName, filesetName, filesetResp.FilesetName, snapName, volumeIDMembers.StorageClassType, snapWindowInt, snapExist) if err != nil { + return nil, err } if createNewSnap { @@ -3521,6 +3522,14 @@ func (cs *ScaleControllerServer) CheckIfNewSnapshotIsRequired(ctx context.Contex if cgSnapName != "" { usable, err := cs.isExistingSnapUseableForVol(ctx, conn, filesystemName, filesetName, fsetName, cgSnapName) if !usable { + pathDir := fmt.Sprintf("%s/.snapshots/%s", consistencyGroup, cgSnapName) + _, err := conn.StatDirectory(ctx, filesystemName, pathDir) + if err != nil { + if strings.Contains(err.Error(), "EFSSG0264C") || + strings.Contains(err.Error(), "does not exist") { // directory does not exist + return snapName, createNewSnap, nil + } + } return snapName, createNewSnap, err } createNewSnap = false From eaf747cc9748447b250745c3f9d21c9b5b079a2b Mon Sep 17 00:00:00 2001 From: hemalathagajendran Date: Tue, 2 Dec 2025 06:11:30 -0800 Subject: [PATCH 2/2] Added changes Signed-off-by: hemalathagajendran --- driver/csiplugin/controllerserver.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/driver/csiplugin/controllerserver.go b/driver/csiplugin/controllerserver.go index df3275a15..22f47271b 100644 --- a/driver/csiplugin/controllerserver.go +++ b/driver/csiplugin/controllerserver.go @@ -3520,9 +3520,9 @@ func (cs *ScaleControllerServer) CheckIfNewSnapshotIsRequired(ctx context.Contex return snapName, createNewSnap, err } if cgSnapName != "" { - usable, err := cs.isExistingSnapUseableForVol(ctx, conn, filesystemName, filesetName, fsetName, cgSnapName) + usable, _ := cs.isExistingSnapUseableForVol(ctx, conn, filesystemName, filesetName, fsetName, cgSnapName) if !usable { - pathDir := fmt.Sprintf("%s/.snapshots/%s", consistencyGroup, cgSnapName) + pathDir := fmt.Sprintf("%s/.snapshots/%s", filesetName, cgSnapName) _, err := conn.StatDirectory(ctx, filesystemName, pathDir) if err != nil { if strings.Contains(err.Error(), "EFSSG0264C") ||