diff --git a/patches/openstack/cinder/sep-clone-across-pools.patch b/patches/openstack/cinder/sep-clone-across-pools.patch
index fade092..0992ec0 100644
--- a/patches/openstack/cinder/sep-clone-across-pools.patch
+++ b/patches/openstack/cinder/sep-clone-across-pools.patch
@@ -1,7 +1,7 @@
-From 8ce9bb75fb32c921043b14b43884c8b1660cd9b8 Mon Sep 17 00:00:00 2001
+From 3b0addd827de5613b4c17c802b9f936fb60491ff 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 08/10] Add the clone_across_pools driver capability
+Subject: [PATCH 7/9] 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
@@ -96,7 +96,7 @@
              expect = {'cluster_name': self.volume.cluster_name}
          found_entry = cache.get_entry(self.context,
 diff --git a/cinder/tests/unit/volume/flows/test_create_volume_flow.py b/cinder/tests/unit/volume/flows/test_create_volume_flow.py
-index 1bb3f2b98..a804d7fe6 100644
+index fa629599a..a90e943fe 100644
 --- a/cinder/tests/unit/volume/flows/test_create_volume_flow.py
 +++ b/cinder/tests/unit/volume/flows/test_create_volume_flow.py
 @@ -1060,6 +1060,7 @@ class CreateVolumeFlowManagerTestCase(test.TestCase):
@@ -131,7 +131,7 @@
          fake_volume_manager = mock.MagicMock()
          fake_cache = mock.MagicMock()
          fake_manager = create_volume_manager.CreateVolumeFromSpecTask(
-@@ -1194,6 +1198,7 @@ class CreateVolumeFlowManagerTestCase(test.TestCase):
+@@ -1195,6 +1199,7 @@ class CreateVolumeFlowManagerTestCase(test.TestCase):
                                                      mock_cleanup_cg):
          fake_db = mock.MagicMock()
          fake_driver = mock.MagicMock()
@@ -139,7 +139,7 @@
          fake_volume_manager = mock.MagicMock()
          fake_manager = create_volume_manager.CreateVolumeFromSpecTask(
              fake_volume_manager, fake_db, fake_driver)
-@@ -1252,6 +1257,7 @@ class CreateVolumeFlowManagerTestCase(test.TestCase):
+@@ -1254,6 +1259,7 @@ class CreateVolumeFlowManagerTestCase(test.TestCase):
                                  driver_error):
          fake_db = mock.MagicMock()
          fake_driver = mock.MagicMock()
@@ -147,7 +147,7 @@
          fake_volume_manager = mock.MagicMock()
          backup_host = 'host@backend#pool'
          test_manager = create_volume_manager.CreateVolumeFromSpecTask(
-@@ -1291,6 +1297,7 @@ class CreateVolumeFlowManagerTestCase(test.TestCase):
+@@ -1293,6 +1299,7 @@ class CreateVolumeFlowManagerTestCase(test.TestCase):
      def test_create_drive_error(self, mock_message_create):
          fake_db = mock.MagicMock()
          fake_driver = mock.MagicMock()
@@ -155,7 +155,7 @@
          fake_volume_manager = mock.MagicMock()
          fake_manager = create_volume_manager.CreateVolumeFromSpecTask(
              fake_volume_manager, fake_db, fake_driver)
-@@ -1492,6 +1499,7 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
+@@ -1494,6 +1501,7 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
              spec=utils.get_file_spec())
          fake_db = mock.MagicMock()
          fake_driver = mock.MagicMock()
@@ -163,7 +163,7 @@
          fake_manager = create_volume_manager.CreateVolumeFromSpecTask(
              mock.MagicMock(), fake_db, fake_driver)
          fake_image_service = fake_image.FakeImageService()
-@@ -1518,6 +1526,7 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
+@@ -1520,6 +1528,7 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
                        'cinder_encryption_key_id': None}
  
          fake_driver.clone_image.return_value = (None, False)
@@ -171,7 +171,7 @@
          fake_db.volume_get_all_by_host.return_value = [image_volume]
  
          fake_manager._create_from_image(self.ctxt,
-@@ -1536,6 +1545,69 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
+@@ -1538,6 +1547,69 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
              self.assertFalse(fake_driver.create_cloned_volume.called)
          mock_cleanup_cg.assert_called_once_with(volume)
  
@@ -241,7 +241,7 @@
      LEGACY_URI = 'cinder://%s' % fakes.VOLUME_ID
      MULTISTORE_URI = 'cinder://fake-store/%s' % fakes.VOLUME_ID
  
-@@ -1562,6 +1634,7 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
+@@ -1564,6 +1636,7 @@ class CreateVolumeFlowManagerGlanceCinderBackendCase(test.TestCase):
              spec=utils.get_file_spec())
          fake_db = mock.MagicMock()
          fake_driver = mock.MagicMock()
@@ -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 ac09ed898..7347ac1f8 100644
+index 1f78b3375..5ddeb1a56 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 104291563..88c037279 100644
+index 34e6e4cff..7850ed19b 100644
 --- a/cinder/volume/manager.py
 +++ b/cinder/volume/manager.py
 @@ -356,7 +356,8 @@ class VolumeManager(manager.CleanableManager,
@@ -283,7 +283,7 @@
              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 6c3af739e..3bb2be72b 100644
+index 4cf4cf655..243993fe8 100644
 --- a/doc/source/reference/support-matrix.ini
 +++ b/doc/source/reference/support-matrix.ini
 @@ -1048,3 +1048,81 @@ driver.win_iscsi=missing
@@ -369,5 +369,5 @@
 +driver.yadro=missing
 +driver.zadara=missing
 -- 
-2.42.0
+2.43.0
 
