code: func getSecretFromCephFSPersistentVolume(pv *v1.PersistentVolume) (*v1.SecretReference, error) {
  	source := &pv.Spec.PersistentVolumeSource
  	if source.CephFS == nil {
  		return nil, errors.New("pv.Spec.PersistentVolumeSource.CephFS is nil")
  	}
  	if source.CephFS.SecretRef == nil {
  		return nil, errors.New("pv.Spec.PersistentVolumeSource.CephFS.SecretRef is nil")
  	}
  	if len(source.CephFS.SecretRef.Namespace) > 0 {
  		return source.CephFS.SecretRef, nil
  	}
  	ns := getClaimRefNamespace(pv)
  	if len(ns) <= 0 {
  		return nil, errors.New("both pv.Spec.SecretRef.Namespace and pv.Spec.ClaimRef.Namespace are empty")
  	}
  	return &v1.SecretReference{
  		Name:      source.CephFS.SecretRef.Name,
  		Namespace: ns,
  	}, nil
  }
docs: // getSecretFromCephFSPersistentVolume gets secret reference from CephFS PersistentVolume.
  // It fallbacks to use ClaimRef.Namespace if SecretRef.Namespace is
  // empty. See https://github.com/kubernetes/kubernetes/pull/49502.