From f8bbd2f60f74a2e76383ebd67b0acea67fa89b4d Mon Sep 17 00:00:00 2001 From: Madhu Rajanna Date: Tue, 29 Mar 2022 21:49:31 +0530 Subject: [PATCH] cephfs: fix omap deletion in DeleteSnapshot The omap is stored with the requested snapshot name not with the subvolume snapshotname. This fix uses the correct snapshot request name to cleanup the omap once the subvolume snapshot is deleted. fixes: #2974 Signed-off-by: Madhu Rajanna --- internal/cephfs/controllerserver.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/cephfs/controllerserver.go b/internal/cephfs/controllerserver.go index 8ed06d5fe..d40544d1f 100644 --- a/internal/cephfs/controllerserver.go +++ b/internal/cephfs/controllerserver.go @@ -823,10 +823,10 @@ func (cs *ControllerServer) DeleteSnapshot( // success as deletion is complete return &csi.DeleteSnapshotResponse{}, nil case errors.Is(err, cerrors.ErrSnapNotFound): - err = store.UndoSnapReservation(ctx, volOpt, *sid, sid.FsSnapshotName, cr) + err = store.UndoSnapReservation(ctx, volOpt, *sid, sid.RequestName, cr) if err != nil { log.ErrorLog(ctx, "failed to remove reservation for snapname (%s) with backing snap (%s) (%s)", - sid.FsSubvolName, sid.FsSnapshotName, err) + sid.RequestName, sid.FsSnapshotName, err) return nil, status.Error(codes.Internal, err.Error()) } @@ -836,10 +836,10 @@ func (cs *ControllerServer) DeleteSnapshot( // if the error is ErrVolumeNotFound, the subvolume is already deleted // from backend, Hence undo the omap entries and return success log.ErrorLog(ctx, "Volume not present") - err = store.UndoSnapReservation(ctx, volOpt, *sid, sid.FsSnapshotName, cr) + err = store.UndoSnapReservation(ctx, volOpt, *sid, sid.RequestName, cr) if err != nil { log.ErrorLog(ctx, "failed to remove reservation for snapname (%s) with backing snap (%s) (%s)", - sid.FsSubvolName, sid.FsSnapshotName, err) + sid.RequestName, sid.FsSnapshotName, err) return nil, status.Error(codes.Internal, err.Error()) } @@ -874,7 +874,7 @@ func (cs *ControllerServer) DeleteSnapshot( if err != nil { return nil, status.Error(codes.Internal, err.Error()) } - err = store.UndoSnapReservation(ctx, volOpt, *sid, sid.FsSnapshotName, cr) + err = store.UndoSnapReservation(ctx, volOpt, *sid, sid.RequestName, cr) if err != nil { log.ErrorLog(ctx, "failed to remove reservation for snapname (%s) with backing snap (%s) (%s)", sid.RequestName, sid.FsSnapshotName, err)