diff --git a/internal/cephfs/core/volume.go b/internal/cephfs/core/volume.go index a92025ec93d9..de41f6b5140d 100644 --- a/internal/cephfs/core/volume.go +++ b/internal/cephfs/core/volume.go @@ -199,15 +199,13 @@ func (s *subVolumeClient) GetSubVolumeInfo(ctx context.Context) (*Subvolume, err type operationState int64 const ( - unknown operationState = iota - supported + supported operationState = iota unsupported ) type localClusterState struct { - // set the enum value i.e., unknown, supported, + // set the enum value i.e., supported or // unsupported as per the state of the cluster. - resizeState operationState subVolMetadataState operationState subVolSnapshotMetadataState operationState } @@ -268,39 +266,22 @@ func (s *subVolumeClient) ExpandVolume(ctx context.Context, bytesQuota int64) er return err } -// ResizeVolume will try to use ceph fs subvolume resize command to resize the -// subvolume. If the command is not available as a fallback it will use -// CreateVolume to resize the subvolume. +// ResizeVolume will use the ceph fs subvolume resize command to resize the +// subvolume. func (s *subVolumeClient) ResizeVolume(ctx context.Context, bytesQuota int64) error { newLocalClusterState(s.clusterID) - // resize subvolume when either it's supported, or when corresponding - // clusterID key was not present. - if clusterAdditionalInfo[s.clusterID].resizeState == unknown || - clusterAdditionalInfo[s.clusterID].resizeState == supported { - fsa, err := s.conn.GetFSAdmin() - if err != nil { - log.ErrorLog(ctx, "could not get FSAdmin, can not resize volume %s:", s.FsName, err) - - return err - } - _, err = fsa.ResizeSubVolume(s.FsName, s.SubvolumeGroup, s.VolID, fsAdmin.ByteCount(bytesQuota), true) - if err == nil { - clusterAdditionalInfo[s.clusterID].resizeState = supported - - return nil - } - var invalid fsAdmin.NotImplementedError - // In case the error is other than invalid command return error to the caller. - if !errors.As(err, &invalid) { - log.ErrorLog(ctx, "failed to resize subvolume %s in fs %s: %s", s.VolID, s.FsName, err) + fsa, err := s.conn.GetFSAdmin() + if err != nil { + log.ErrorLog(ctx, "could not get FSAdmin, can not resize volume %s:", s.FsName, err) - return err - } + return err + } + _, err = fsa.ResizeSubVolume(s.FsName, s.SubvolumeGroup, s.VolID, fsAdmin.ByteCount(bytesQuota), true) + if err != nil { + log.ErrorLog(ctx, "failed to resize subvolume %s in fs %s: %s", s.VolID, s.FsName, err) } - clusterAdditionalInfo[s.clusterID].resizeState = unsupported - s.Size = bytesQuota - return s.CreateVolume(ctx) + return err } // PurgSubVolume removes the subvolume.