diff --git a/api/v1beta1/solrbackup_types.go b/api/v1beta1/solrbackup_types.go
index 3233f0e..d0cf6a2 100644
--- a/api/v1beta1/solrbackup_types.go
+++ b/api/v1beta1/solrbackup_types.go
@@ -121,7 +121,7 @@
 	// +optional
 	CollectionBackupStatuses []CollectionBackupStatus `json:"collectionBackupStatuses,omitempty"`
 
-	// Version of the Solr being backed up
+	// The time that this backup was finished
 	// +optional
 	FinishTime *metav1.Time `json:"finishTimestamp,omitempty"`
 
diff --git a/api/v1beta1/solrcloud_types.go b/api/v1beta1/solrcloud_types.go
index 29933f5..1d2f6f8 100644
--- a/api/v1beta1/solrcloud_types.go
+++ b/api/v1beta1/solrcloud_types.go
@@ -844,8 +844,7 @@
 	// +optional
 	ReadOnlyACL *ZookeeperACL `json:"readOnlyAcl,omitempty"`
 
-	// ZooKeeper ACL to use when connecting with ZK for reading operations.
-	// This ACL should have READ permission in the given chRoot.
+	// Additional Zookeeper Configuration settings
 	// +optional
 	Config ZookeeperConfig `json:"config,omitempty"`
 }
@@ -1418,6 +1417,16 @@
 	return sc.Spec.StorageOptions.PersistentStorage != nil
 }
 
+func (sc *SolrCloud) DataVolumeName() string {
+	// Set the default name of the pvc
+	if sc.Spec.StorageOptions.PersistentStorage != nil &&
+		sc.Spec.StorageOptions.PersistentStorage.PersistentVolumeClaimTemplate.ObjectMeta.Name != "" {
+		return sc.Spec.StorageOptions.PersistentStorage.PersistentVolumeClaimTemplate.ObjectMeta.Name
+	} else {
+		return "data"
+	}
+}
+
 func (sc *SolrCloud) SharedLabels() map[string]string {
 	return sc.SharedLabelsWith(map[string]string{})
 }
diff --git a/config/crd/bases/solr.apache.org_solrbackups.yaml b/config/crd/bases/solr.apache.org_solrbackups.yaml
index 9a59c1a..f0d10e0 100644
--- a/config/crd/bases/solr.apache.org_solrbackups.yaml
+++ b/config/crd/bases/solr.apache.org_solrbackups.yaml
@@ -153,7 +153,7 @@
                   type: object
                 type: array
               finishTimestamp:
-                description: Version of the Solr being backed up
+                description: The time that this backup was finished
                 format: date-time
                 type: string
               finished:
@@ -200,7 +200,7 @@
                         type: object
                       type: array
                     finishTimestamp:
-                      description: Version of the Solr being backed up
+                      description: The time that this backup was finished
                       format: date-time
                       type: string
                     finished:
diff --git a/config/crd/bases/solr.apache.org_solrclouds.yaml b/config/crd/bases/solr.apache.org_solrclouds.yaml
index fa7c065..b18aa49 100644
--- a/config/crd/bases/solr.apache.org_solrclouds.yaml
+++ b/config/crd/bases/solr.apache.org_solrclouds.yaml
@@ -5267,7 +5267,7 @@
                         description: The ChRoot to connect solr at
                         type: string
                       config:
-                        description: ZooKeeper ACL to use when connecting with ZK for reading operations. This ACL should have READ permission in the given chRoot.
+                        description: Additional Zookeeper Configuration settings
                         properties:
                           additionalConfig:
                             additionalProperties:
diff --git a/controllers/util/solr_update_util.go b/controllers/util/solr_update_util.go
index 7bf5690..ab91dba 100644
--- a/controllers/util/solr_update_util.go
+++ b/controllers/util/solr_update_util.go
@@ -482,15 +482,16 @@
 // This function MUST be idempotent and return the same list of pods given the same kubernetes/solr state.
 func EvictReplicasForPodIfNecessary(ctx context.Context, solrCloud *solr.SolrCloud, pod *corev1.Pod, logger logr.Logger) (err error, canDeletePod bool) {
 	var solrDataVolume *corev1.Volume
+	dataVolumeName := solrCloud.DataVolumeName()
 	for _, volume := range pod.Spec.Volumes {
-		if volume.Name == SolrDataVolumeName {
+		if volume.Name == dataVolumeName {
 			solrDataVolume = &volume
 			break
 		}
 	}
 
 	// Only evict if the Data volume is not persistent
-	if solrDataVolume.VolumeSource.PersistentVolumeClaim == nil {
+	if solrDataVolume != nil && solrDataVolume.VolumeSource.PersistentVolumeClaim == nil {
 		// If the Cloud has 1 or zero pods, and this is the "-0" pod, then delete the data since we can't move it anywhere else
 		// Otherwise, move the replicas to other pods
 		if (solrCloud.Spec.Replicas == nil || *solrCloud.Spec.Replicas < 2) && strings.HasSuffix(pod.Name, "-0") {
diff --git a/controllers/util/solr_util.go b/controllers/util/solr_util.go
index 0223bb0..5bc95c0 100644
--- a/controllers/util/solr_util.go
+++ b/controllers/util/solr_util.go
@@ -45,7 +45,6 @@
 	SolrCloudPVCTechnology           = "solr-cloud"
 	SolrPVCStorageLabel              = "solr.apache.org/storage"
 	SolrCloudPVCDataStorage          = "data"
-	SolrDataVolumeName               = "data"
 	SolrPVCInstanceLabel             = "solr.apache.org/instance"
 	SolrXmlMd5Annotation             = "solr.apache.org/solrXmlMd5"
 	SolrXmlFile                      = "solr.xml"
@@ -143,18 +142,14 @@
 		},
 	}
 
-	solrDataVolumeName := SolrDataVolumeName
+	solrDataVolumeName := solrCloud.DataVolumeName()
 
 	var pvcs []corev1.PersistentVolumeClaim
 	if solrCloud.UsesPersistentStorage() {
 		pvc := solrCloud.Spec.StorageOptions.PersistentStorage.PersistentVolumeClaimTemplate.DeepCopy()
 
 		// Set the default name of the pvc
-		if pvc.ObjectMeta.Name == "" {
-			pvc.ObjectMeta.Name = solrDataVolumeName
-		} else {
-			solrDataVolumeName = pvc.ObjectMeta.Name
-		}
+		pvc.ObjectMeta.Name = solrDataVolumeName
 
 		// Set some defaults in the PVC Spec
 		if len(pvc.Spec.AccessModes) == 0 {
diff --git a/helm/solr-operator/Chart.yaml b/helm/solr-operator/Chart.yaml
index d5c7da0..8446dc9 100644
--- a/helm/solr-operator/Chart.yaml
+++ b/helm/solr-operator/Chart.yaml
@@ -53,16 +53,13 @@
   # Add change log for a single release here.
   # Allowed syntax is described at: https://artifacthub.io/docs/topics/annotations/helm/#example
   artifacthub.io/changes: |
-    - kind: added
-      description: Addition 1
+    - kind: fixed
+      description: Fix bug with named PVCs
       links:
         - name: Github Issue
-          url: https://github.com/issue-url
-    - kind: changed
-      description: Change 2
-      links:
+          url: https://github.com/apache/solr-operator/issues/479
         - name: Github PR
-          url: https://github.com/pr-url
+          url: https://github.com/apache/solr-operator/pull/481
   artifacthub.io/images: |
     - name: solr-operator
       image: apache/solr-operator:v0.7.0-prerelease
diff --git a/helm/solr-operator/crds/crds.yaml b/helm/solr-operator/crds/crds.yaml
index a3c4bbc..2338291 100644
--- a/helm/solr-operator/crds/crds.yaml
+++ b/helm/solr-operator/crds/crds.yaml
@@ -153,7 +153,7 @@
                   type: object
                 type: array
               finishTimestamp:
-                description: Version of the Solr being backed up
+                description: The time that this backup was finished
                 format: date-time
                 type: string
               finished:
@@ -200,7 +200,7 @@
                         type: object
                       type: array
                     finishTimestamp:
-                      description: Version of the Solr being backed up
+                      description: The time that this backup was finished
                       format: date-time
                       type: string
                     finished:
@@ -5499,7 +5499,7 @@
                         description: The ChRoot to connect solr at
                         type: string
                       config:
-                        description: ZooKeeper ACL to use when connecting with ZK for reading operations. This ACL should have READ permission in the given chRoot.
+                        description: Additional Zookeeper Configuration settings
                         properties:
                           additionalConfig:
                             additionalProperties:
