diff --git a/patches/openstack/cinder/sep-clone-across-pools.patch b/patches/openstack/cinder/sep-clone-across-pools.patch
index 40753e7..755f52f 100644
--- a/patches/openstack/cinder/sep-clone-across-pools.patch
+++ b/patches/openstack/cinder/sep-clone-across-pools.patch
@@ -1,7 +1,7 @@
-From 6809a2569d281eb6217edc3b7ce9663a996186fb Mon Sep 17 00:00:00 2001
+From af80e707f4a921d9c1e83fd9487b941406d20ecd Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Wed, 22 Jun 2022 10:04:31 +0300
-Subject: [PATCH 2/7] Add the clone_across_pools driver capability
+Subject: [PATCH 01/10] Add the clone_across_pools driver capability
 
 Let drivers declare that they can clone a volume into a different pool and
 relax the checks when creating a volume from an image (both with and
@@ -12,11 +12,11 @@
 ---
  cinder/image/cache.py                         | 11 ++-
  cinder/tests/unit/image/test_cache.py         | 14 ++--
- .../volume/flows/test_create_volume_flow.py   | 73 ++++++++++++++++++
+ .../volume/flows/test_create_volume_flow.py   | 73 +++++++++++++++++
  cinder/volume/flows/manager/create_volume.py  |  8 +-
  cinder/volume/manager.py                      |  3 +-
- doc/source/reference/support-matrix.ini       | 76 +++++++++++++++++++
- 6 files changed, 172 insertions(+), 13 deletions(-)
+ doc/source/reference/support-matrix.ini       | 78 +++++++++++++++++++
+ 6 files changed, 174 insertions(+), 13 deletions(-)
 
 diff --git a/cinder/image/cache.py b/cinder/image/cache.py
 index 6d30210a4..a79451bf2 100644
@@ -250,7 +250,7 @@
              mock.MagicMock(), fake_db, fake_driver)
          fake_image_service = fake_image.FakeImageService()
 diff --git a/cinder/volume/flows/manager/create_volume.py b/cinder/volume/flows/manager/create_volume.py
-index 0ae3cb59d..45d06ebb9 100644
+index 905258bf4..963cc2d78 100644
 --- a/cinder/volume/flows/manager/create_volume.py
 +++ b/cinder/volume/flows/manager/create_volume.py
 @@ -741,8 +741,12 @@ class CreateVolumeFromSpecTask(flow_utils.CinderTask):
@@ -269,7 +269,7 @@
          for image_volume in image_volumes:
              # For the case image volume is stored in the service tenant,
 diff --git a/cinder/volume/manager.py b/cinder/volume/manager.py
-index 2dcf7ae30..79a0ae9a2 100644
+index c2c52ec82..26e30d67b 100644
 --- a/cinder/volume/manager.py
 +++ b/cinder/volume/manager.py
 @@ -356,7 +356,8 @@ class VolumeManager(manager.CleanableManager,
@@ -283,10 +283,10 @@
              LOG.info('Image-volume cache enabled for host %(host)s.',
                       {'host': self.host})
 diff --git a/doc/source/reference/support-matrix.ini b/doc/source/reference/support-matrix.ini
-index 384a633da..d01ecc15c 100644
+index 7b4b3c38d..86a5660b8 100644
 --- a/doc/source/reference/support-matrix.ini
 +++ b/doc/source/reference/support-matrix.ini
-@@ -996,3 +996,79 @@ driver.win_iscsi=missing
+@@ -1022,3 +1022,81 @@ driver.win_iscsi=missing
  driver.win_smb=missing
  driver.yadro=complete
  driver.zadara=missing
@@ -311,10 +311,12 @@
 +driver.dell_emc_powerflex=missing
 +driver.dell_emc_xtremio=missing
 +driver.fujitsu_eternus=missing
++driver.fungible=missing
 +driver.hitachi_vsp=missing
 +driver.hpe_3par=missing
 +driver.hpe_msa=missing
 +driver.hpe_nimble=missing
++driver.hpe_xp=missing
 +driver.huawei_t_v1=missing
 +driver.huawei_t_v2=missing
 +driver.huawei_v3=missing
@@ -367,5 +369,5 @@
 +driver.yadro=missing
 +driver.zadara=missing
 -- 
-2.35.1
+2.39.2
 
diff --git a/patches/openstack/cinder/sep-sp-clone-across-pools.patch b/patches/openstack/cinder/sep-sp-clone-across-pools.patch
index ba8a79c..05669d0 100644
--- a/patches/openstack/cinder/sep-sp-clone-across-pools.patch
+++ b/patches/openstack/cinder/sep-sp-clone-across-pools.patch
@@ -1,7 +1,7 @@
-From 5851b3cbf356620b43e82afcd1b2c55ed1a9cb0a Mon Sep 17 00:00:00 2001
+From 056fd8671716cf50b6916b343a6e45e5c64806b2 Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Wed, 22 Jun 2022 10:48:25 +0300
-Subject: [PATCH 3/7] StorPool: declare the clone_across_pools capability
+Subject: [PATCH 02/10] StorPool: declare the clone_across_pools capability
 
 Change-Id: I5338c6c4f53a448e495f695cd64b36b722cd947d
 ---
@@ -22,10 +22,10 @@
  
              'pools': pools
 diff --git a/doc/source/reference/support-matrix.ini b/doc/source/reference/support-matrix.ini
-index d01ecc15c..33c9b0b91 100644
+index 86a5660b8..d10137154 100644
 --- a/doc/source/reference/support-matrix.ini
 +++ b/doc/source/reference/support-matrix.ini
-@@ -1061,7 +1061,7 @@ driver.rbd=missing
+@@ -1089,7 +1089,7 @@ driver.rbd=missing
  driver.rbd_iscsi=missing
  driver.sandstone=missing
  driver.seagate=missing
@@ -35,5 +35,5 @@
  driver.toyou_netstor=missing
  driver.vrtsaccess=missing
 -- 
-2.35.1
+2.39.2
 
diff --git a/patches/openstack/cinder/sep-sp-clone-volume.patch b/patches/openstack/cinder/sep-sp-clone-volume.patch
index 2c25551..b0132ee 100644
--- a/patches/openstack/cinder/sep-sp-clone-volume.patch
+++ b/patches/openstack/cinder/sep-sp-clone-volume.patch
@@ -1,7 +1,7 @@
-From 110d748871ed078eff42bd370bcdfb643614e6f5 Mon Sep 17 00:00:00 2001
+From 81f472830ba09a42d887c22fc5f0a938ff9498ca Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Wed, 20 Apr 2022 15:47:39 +0300
-Subject: [PATCH 3/3] StorPool: create_cloned_volume() improvements
+Subject: [PATCH 09/10] StorPool: create_cloned_volume() improvements
 
 If the source and destination volumes are in the same StorPool template
 (as defined by either the volume type or the global config setting),
@@ -282,7 +282,7 @@
  
          self.driver.create_volume({'id': 'cfgtempl2', 'name': 'v1', 'size': 1,
 diff --git a/cinder/volume/drivers/storpool.py b/cinder/volume/drivers/storpool.py
-index cb5680d29..5aa30398e 100644
+index dcad96bb8..58b64bced 100644
 --- a/cinder/volume/drivers/storpool.py
 +++ b/cinder/volume/drivers/storpool.py
 @@ -19,11 +19,13 @@ import platform
@@ -397,7 +397,7 @@
      def create_export(self, context, volume, connector):
          pass
 diff --git a/driver-requirements.txt b/driver-requirements.txt
-index f501e9fcd..d55fb86c7 100644
+index 2f05bc94e..2b28d37fd 100644
 --- a/driver-requirements.txt
 +++ b/driver-requirements.txt
 @@ -41,7 +41,7 @@ infi.dtypes.wwn # PSF
@@ -422,5 +422,5 @@
 +    StorPool templates (exposed as Cinder storage pools) if requested,
 +    eliminating some data duplication in the underlying StorPool cluster.
 -- 
-2.39.0
+2.39.2
 
diff --git a/patches/openstack/cinder/sep-sp-cosmetic-comments.patch b/patches/openstack/cinder/sep-sp-cosmetic-comments.patch
new file mode 100644
index 0000000..27d4f1b
--- /dev/null
+++ b/patches/openstack/cinder/sep-sp-cosmetic-comments.patch
@@ -0,0 +1,36 @@
+From 13e958bd85997cd84c37b76c0282bbfde5b9224a Mon Sep 17 00:00:00 2001
+From: Peter Penchev <openstack-dev@storpool.com>
+Date: Mon, 13 Feb 2023 11:15:27 +0200
+Subject: [PATCH 03/10] StorPool: cosmetic: comment headings instead of empty
+ lines
+
+Instead of using empty lines to separate semantically different
+sections of the driver capabilities / pools status dictionary,
+put in comments describing the sections.
+
+Change-Id: Id919c9d4a854101c9635c53af4e11d5ea22ea697
+---
+ cinder/volume/drivers/storpool.py | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/cinder/volume/drivers/storpool.py
++++ b/cinder/volume/drivers/storpool.py
+@@ -302,15 +302,16 @@
+                        ) for t in templates]
+ 
+         self._stats = {
++            # Basic driver properties
+             'volume_backend_name': self.configuration.safe_get(
+                 'volume_backend_name') or 'storpool',
+             'vendor_name': 'StorPool',
+             'driver_version': self.VERSION,
+             'storage_protocol': constants.STORPOOL,
+-
++            # Driver capabilities
+             'clone_across_pools': True,
+             'sparse_copy_volume': True,
+-
++            # The actual pools data
+             'pools': pools
+         }
+ 
diff --git a/patches/openstack/cinder/sep-sp-fix-test-rename.patch b/patches/openstack/cinder/sep-sp-fix-test-rename.patch
index 3899848..e9d5060 100644
--- a/patches/openstack/cinder/sep-sp-fix-test-rename.patch
+++ b/patches/openstack/cinder/sep-sp-fix-test-rename.patch
@@ -1,7 +1,7 @@
-From 498aa10da848c6d5e75b1d7f0d2c67fd9536f251 Mon Sep 17 00:00:00 2001
+From e655d91587dc5674d274a7ffa3482888207eb1ec Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Tue, 17 Jan 2023 01:20:59 +0200
-Subject: [PATCH 1/3] StorPool: fix the "rename volume" unit test emulation
+Subject: [PATCH 07/10] StorPool: fix the "rename volume" unit test emulation
 
 Also update the "name" field of the actual data structure in
 the fake list of volumes.
@@ -37,5 +37,5 @@
      @mock_volume_types
      def test_create_delete_volume(self):
 -- 
-2.39.0
+2.39.2
 
diff --git a/patches/openstack/cinder/sep-sp-iscsi.patch b/patches/openstack/cinder/sep-sp-iscsi.patch
index 23117a6..840007d 100644
--- a/patches/openstack/cinder/sep-sp-iscsi.patch
+++ b/patches/openstack/cinder/sep-sp-iscsi.patch
@@ -1,7 +1,7 @@
-From 51e163e721378ad280e588a2eb1195d220f6304c Mon Sep 17 00:00:00 2001
+From 9d022ada82cb1aa161e360890c4d86fce958aea4 Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Mon, 12 Mar 2018 12:00:10 +0200
-Subject: [PATCH] Add iSCSI export support to the StorPool driver
+Subject: [PATCH 10/10] Add iSCSI export support to the StorPool driver
 
 Add four new driver options:
 - iscsi_cinder_volume: use StorPool iSCSI attachments whenever
@@ -25,14 +25,16 @@
 
 Change-Id: I9de64306e0e6976268df782053b0651dd1cca96f
 ---
- .../unit/volume/drivers/test_storpool.py      |  64 +++-
- cinder/volume/drivers/storpool.py             | 360 +++++++++++++++++-
+ .../unit/volume/drivers/test_storpool.py      |  64 ++-
+ cinder/volume/drivers/storpool.py             | 374 +++++++++++++++++-
  .../drivers/storpool-volume-driver.rst        |  49 ++-
- 3 files changed, 464 insertions(+), 9 deletions(-)
+ 3 files changed, 478 insertions(+), 9 deletions(-)
 
+diff --git a/cinder/tests/unit/volume/drivers/test_storpool.py b/cinder/tests/unit/volume/drivers/test_storpool.py
+index 95a1ffffd..7e8a17800 100644
 --- a/cinder/tests/unit/volume/drivers/test_storpool.py
 +++ b/cinder/tests/unit/volume/drivers/test_storpool.py
-@@ -32,6 +32,7 @@
+@@ -32,6 +32,7 @@ fakeStorPool.sptypes = mock.Mock()
  sys.modules['storpool'] = fakeStorPool
  
  
@@ -40,7 +42,7 @@
  from cinder import exception
  from cinder.tests.unit import test
  from cinder.volume import configuration as conf
-@@ -222,7 +223,14 @@
+@@ -222,7 +223,14 @@ class StorPoolTestCase(test.TestCase):
          self.cfg.volume_backend_name = 'storpool_test'
          self.cfg.storpool_template = None
          self.cfg.storpool_replication = 3
@@ -55,7 +57,7 @@
          mock_exec = mock.Mock()
          mock_exec.return_value = ('', '')
  
-@@ -231,7 +239,7 @@
+@@ -231,7 +239,7 @@ class StorPoolTestCase(test.TestCase):
          self.driver.check_for_setup_error()
  
      @ddt.data(
@@ -64,7 +66,7 @@
          ({'no-host': None}, KeyError),
          ({'host': 'sbad'}, driver.StorPoolConfigurationInvalid),
          ({'host': 's01'}, None),
-@@ -247,7 +255,7 @@
+@@ -247,7 +255,7 @@ class StorPoolTestCase(test.TestCase):
                                conn)
  
      @ddt.data(
@@ -73,7 +75,7 @@
          ({'no-host': None}, KeyError),
          ({'host': 'sbad'}, driver.StorPoolConfigurationInvalid),
      )
-@@ -644,3 +652,55 @@
+@@ -644,3 +652,55 @@ class StorPoolTestCase(test.TestCase):
                           self.driver.get_pool({
                               'volume_type': volume_type
                           }))
@@ -129,6 +131,8 @@
 +        # look at the specified expected value.
 +        check({"storpool_wants_iscsi": False}, use_iscsi, expected)
 +        check({}, use_iscsi, expected)
+diff --git a/cinder/volume/drivers/storpool.py b/cinder/volume/drivers/storpool.py
+index 58b64bced..f238dc217 100644
 --- a/cinder/volume/drivers/storpool.py
 +++ b/cinder/volume/drivers/storpool.py
 @@ -15,6 +15,7 @@
@@ -139,7 +143,7 @@
  import platform
  
  from oslo_config import cfg
-@@ -44,6 +45,31 @@
+@@ -44,6 +45,31 @@ if storpool:
  
  
  storpool_opts = [
@@ -171,7 +175,7 @@
      cfg.StrOpt('storpool_template',
                 default=None,
                 help='The StorPool template for volumes with no type.'),
-@@ -105,6 +131,7 @@
+@@ -105,6 +131,7 @@ class StorPoolDriver(driver.VolumeDriver):
          self._ourId = None
          self._ourIdInt = None
          self._attach = None
@@ -179,7 +183,7 @@
  
      @staticmethod
      def get_driver_options():
-@@ -162,10 +189,326 @@
+@@ -162,10 +189,326 @@ class StorPoolDriver(driver.VolumeDriver):
              raise StorPoolConfigurationInvalid(
                  section=hostname, param='SP_OURID', error=e)
  
@@ -506,7 +510,7 @@
          return {'driver_volume_type': 'storpool',
                  'data': {
                      'client_id': self._storpool_client_id(connector),
-@@ -174,6 +517,9 @@
+@@ -174,6 +517,9 @@ class StorPoolDriver(driver.VolumeDriver):
                  }}
  
      def terminate_connection(self, volume, connector, **kwargs):
@@ -516,7 +520,7 @@
          pass
  
      def create_snapshot(self, snapshot):
-@@ -275,11 +621,20 @@
+@@ -275,11 +621,20 @@ class StorPoolDriver(driver.VolumeDriver):
                      )
  
      def create_export(self, context, volume, connector):
@@ -538,7 +542,7 @@
      def delete_volume(self, volume):
          name = self._attach.volumeName(volume['id'])
          try:
-@@ -316,6 +671,17 @@
+@@ -316,6 +671,17 @@ class StorPoolDriver(driver.VolumeDriver):
              LOG.error("StorPoolDriver API initialization failed: %s", e)
              raise
  
@@ -556,7 +560,7 @@
      def _update_volume_stats(self):
          try:
              dl = self._attach.api().disksList()
-@@ -341,7 +707,7 @@
+@@ -341,7 +707,7 @@ class StorPoolDriver(driver.VolumeDriver):
              'total_capacity_gb': total / units.Gi,
              'free_capacity_gb': free / units.Gi,
              'reserved_percentage': 0,
@@ -565,7 +569,7 @@
              'QoS_support': False,
              'thick_provisioning_support': False,
              'thin_provisioning_support': True,
-@@ -359,7 +725,9 @@
+@@ -360,7 +726,9 @@ class StorPoolDriver(driver.VolumeDriver):
                  'volume_backend_name') or 'storpool',
              'vendor_name': 'StorPool',
              'driver_version': self.VERSION,
@@ -573,12 +577,14 @@
 +            'storage_protocol': (
 +                constants.ISCSI if self._use_iscsi else constants.STORPOOL
 +            ),
- 
+             # Driver capabilities
              'clone_across_pools': True,
              'sparse_copy_volume': True,
+diff --git a/doc/source/configuration/block-storage/drivers/storpool-volume-driver.rst b/doc/source/configuration/block-storage/drivers/storpool-volume-driver.rst
+index d2c5895a9..c891675bc 100644
 --- a/doc/source/configuration/block-storage/drivers/storpool-volume-driver.rst
 +++ b/doc/source/configuration/block-storage/drivers/storpool-volume-driver.rst
-@@ -19,12 +19,15 @@
+@@ -19,12 +19,15 @@ Prerequisites
  * The controller and all the compute nodes must have access to the StorPool
    API service.
  
@@ -598,7 +604,7 @@
  
  * All nodes that need to access the StorPool API (the compute nodes and
    the node running the ``cinder-volume`` service) must have the following
-@@ -34,6 +37,29 @@
+@@ -34,6 +37,29 @@ Prerequisites
    * the storpool Python bindings package
    * the storpool.spopenstack Python helper package
  
@@ -628,7 +634,7 @@
  Configuring the StorPool volume driver
  --------------------------------------
  
-@@ -55,6 +81,21 @@
+@@ -55,6 +81,21 @@ volume backend definition) and per volume type:
    with the default placement constraints for the StorPool cluster.
    The default value for the chain replication is 3.
  
@@ -650,3 +656,6 @@
  Using the StorPool volume driver
  --------------------------------
  
+-- 
+2.39.2
+
diff --git a/patches/openstack/cinder/sep-sp-leave-it-to-brick.patch b/patches/openstack/cinder/sep-sp-leave-it-to-brick.patch
index fea0d2a..1367a63 100644
--- a/patches/openstack/cinder/sep-sp-leave-it-to-brick.patch
+++ b/patches/openstack/cinder/sep-sp-leave-it-to-brick.patch
@@ -1,7 +1,7 @@
-From 6c24a83a1b7c1c31a43088165492604f440e00c5 Mon Sep 17 00:00:00 2001
+From 29dbfb6261738d63443bee5c48431a918c6ef376 Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Tue, 20 Apr 2021 17:46:41 +0300
-Subject: [PATCH 4/7] StorPool: drop _attach_volume() and _detach_volume()
+Subject: [PATCH 04/10] StorPool: drop _attach_volume() and _detach_volume()
 
 Our os-brick connector already handles the "keep track of which volume
 is attached for what reason" calls to storpool.spopenstack. However,
@@ -38,7 +38,7 @@
      def test_noop_functions(self):
          self.driver.terminate_connection(None, None)
 diff --git a/cinder/volume/drivers/storpool.py b/cinder/volume/drivers/storpool.py
-index 328f76c00..353329085 100644
+index 8c2989fa8..cffbe9ee0 100644
 --- a/cinder/volume/drivers/storpool.py
 +++ b/cinder/volume/drivers/storpool.py
 @@ -168,6 +168,7 @@ class StorPoolDriver(driver.VolumeDriver):
@@ -49,7 +49,7 @@
                  }}
  
      def terminate_connection(self, volume, connector, **kwargs):
-@@ -314,45 +315,6 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -315,45 +316,6 @@ class StorPoolDriver(driver.VolumeDriver):
              'pools': pools
          }
  
@@ -109,5 +109,5 @@
 +    encrypted StorPool volumes by dropping the needlessly and incompletely
 +    overridden `_attach_volume()` and `_detach_volume()` methods.
 -- 
-2.35.1
+2.39.2
 
diff --git a/patches/openstack/cinder/sep-sp-retype-vol.patch b/patches/openstack/cinder/sep-sp-retype-vol.patch
index 131dd6a..54ab730 100644
--- a/patches/openstack/cinder/sep-sp-retype-vol.patch
+++ b/patches/openstack/cinder/sep-sp-retype-vol.patch
@@ -1,7 +1,7 @@
-From 767b03274054e1c1e422ef8937769ec9851a4111 Mon Sep 17 00:00:00 2001
+From ea9495e33f10979fea5268ff51db5847518cebbc Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Wed, 14 Dec 2022 17:55:56 +0200
-Subject: [PATCH 2/3] StorPool: fix the retype volume flow
+Subject: [PATCH 08/10] StorPool: fix the retype volume flow
 
 Change-Id: I786733aae17dea47e3e6f2a393a947bfb46e70a3
 Closes-Bug: #2002995
@@ -45,10 +45,10 @@
              self.driver.delete_volume({'id': vid})
          self.assertVolumeNames([])
 diff --git a/cinder/volume/drivers/storpool.py b/cinder/volume/drivers/storpool.py
-index cdaf0043d..cb5680d29 100644
+index 956f7ae5a..dcad96bb8 100644
 --- a/cinder/volume/drivers/storpool.py
 +++ b/cinder/volume/drivers/storpool.py
-@@ -353,10 +353,12 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -354,10 +354,12 @@ class StorPoolDriver(driver.VolumeDriver):
                              update['template'] = templ
                          else:
                              update['replication'] = repl
@@ -65,7 +65,7 @@
  
          if update:
              name = self._attach.volumeName(volume['id'])
-@@ -381,21 +383,46 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -382,21 +384,46 @@ class StorPoolDriver(driver.VolumeDriver):
                        'created as part of the migration from '
                        '"%(oid)s".', {'tid': temp_id, 'oid': orig_id})
              return {'_name_id': new_volume['_name_id'] or new_volume['id']}
@@ -119,5 +119,5 @@
 +                      {'tname': temp_name, 'oname': orig_name, 'err': e})
 +            return {'_name_id': new_volume['_name_id'] or new_volume['id']}
 -- 
-2.39.0
+2.39.2
 
diff --git a/patches/openstack/cinder/sep-sp-rm-backup.patch b/patches/openstack/cinder/sep-sp-rm-backup.patch
index 76efaf2..286f786 100644
--- a/patches/openstack/cinder/sep-sp-rm-backup.patch
+++ b/patches/openstack/cinder/sep-sp-rm-backup.patch
@@ -1,7 +1,7 @@
-From ade8da3e2df38eaf08717009cc1e874af01aca9d Mon Sep 17 00:00:00 2001
+From cf775ebf2b001ae3e0fcbfea51ff0fba03becb72 Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Mon, 11 May 2020 11:02:53 +0300
-Subject: [PATCH 5/7] StorPool driver: remove the obsolete backup_volume()
+Subject: [PATCH 05/10] StorPool driver: remove the obsolete backup_volume()
 
 Follow suit with I984de3df803f12dbb95e3309e668b3fbd519e70f.
 
@@ -11,10 +11,10 @@
  1 file changed, 29 deletions(-)
 
 diff --git a/cinder/volume/drivers/storpool.py b/cinder/volume/drivers/storpool.py
-index 353329085..cccda8ecb 100644
+index cffbe9ee0..c183a506d 100644
 --- a/cinder/volume/drivers/storpool.py
 +++ b/cinder/volume/drivers/storpool.py
-@@ -315,35 +315,6 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -316,35 +316,6 @@ class StorPoolDriver(driver.VolumeDriver):
              'pools': pools
          }
  
@@ -51,5 +51,5 @@
          req_id = context.request_id
          volname = self._attach.volumeName(volume['id'])
 -- 
-2.35.1
+2.39.2
 
diff --git a/patches/openstack/cinder/sep-sp-rm-copy-volimg.patch b/patches/openstack/cinder/sep-sp-rm-copy-volimg.patch
index da8be40..c15c4a5 100644
--- a/patches/openstack/cinder/sep-sp-rm-copy-volimg.patch
+++ b/patches/openstack/cinder/sep-sp-rm-copy-volimg.patch
@@ -1,22 +1,23 @@
-From d93a652c373a95e8ebcadd6ee002f725deebbdbd Mon Sep 17 00:00:00 2001
+From 18a0deedf635f1aa88afa8a3b3dc108e92df286e Mon Sep 17 00:00:00 2001
 From: Peter Penchev <openstack-dev@storpool.com>
 Date: Mon, 26 Sep 2022 16:04:36 +0300
-Subject: [PATCH 6/7] StorPool: drop copy_image_to_volume() and
+Subject: [PATCH 06/10] StorPool: drop copy_image_to_volume() and
  copy_volume_to_image()
 
 These methods seem to be leftovers from a bygone era when the parent
 driver could not or would not attach volumes safely.
 
 Change-Id: I6e1a9026e677aee6c7ccad908fe6f92dc253762a
+Closes-Bug: #2002996
 ---
  cinder/volume/drivers/storpool.py | 43 -------------------------------
  1 file changed, 43 deletions(-)
 
 diff --git a/cinder/volume/drivers/storpool.py b/cinder/volume/drivers/storpool.py
-index cccda8ecb..cdaf0043d 100644
+index c183a506d..956f7ae5a 100644
 --- a/cinder/volume/drivers/storpool.py
 +++ b/cinder/volume/drivers/storpool.py
-@@ -315,49 +315,6 @@ class StorPoolDriver(driver.VolumeDriver):
+@@ -316,49 +316,6 @@ class StorPoolDriver(driver.VolumeDriver):
              'pools': pools
          }
  
@@ -67,5 +68,5 @@
          size = int(new_size) * units.Gi
          name = self._attach.volumeName(volume['id'])
 -- 
-2.35.1
+2.39.2
 
